This fixes the selection crash that people are seeing and makes my
selection optimisation work properly. The main problems were XtNameToWidget
not handling `.' and Fset_window_configuration nuking the subwindow
instance cache.
There is still a redisplay glitch but that appears to be something to do
with the actual gutter/glyph redisplay code rather than the glyph handling
changes I have made recently. I will fix when I can figure out what is
going wrong.
Martin - unless this leads to more crashes I would go ahead and release 21.2.36
Thanks
andy
2000-08-18 Andy Piper <andy(a)xemacs.org>
* frame.c (delete_frame_internal): use new
free_frame_subwindow_instances name.
* glyphs-msw.c (mswindows_tab_control_instantiate): verify index.
(add_tab_item): make return type correct.
(mswindows_tab_control_instantiate): assert index of tab.
(mswindows_tab_control_redisplay): Re-code to use
gui_item_equal_sans_selected and gui_item_list_find_selected.
* glyphs-widget.c (tab_control_update): Correct comment.
* window.c (window_unmap_subwindows): use new
unmap_subwindow_instance_cache_mapper.
(window_unmap_subwindows_cache_mapper): deleted.
(Fset_window_configuration): comparisons should now be with
EQ. Preserve the subwindow instance cache across configuration
changes.
(allocate_window): ditto.
(make_dummy_parent): ditto.
* glyphs.c (free_frame_subwindow_instances): rename from
free_frame_subwindow_instance_cache. finalize all instances rather
than just those in the display cache.
(finalize_all_subwindow_instances): walk windows unmapping and
finalizing subwindows.
(unmap_subwindow_instance_cache_mapper): moved from
window.c. Allow finalization as well as unmapping.
* gui.c (gui_item_list_find_selected): new function.
* gui.h (gui_item_list_find_selected): declare.
* glyphs-x.c (x_tab_control_redisplay): pick tab
explicitly. Re-code to use gui_item_equal_sans_selected and
gui_item_list_find_selected.
* glyphs-x.h: add lwlib-utils.h
* buffer.c (Frecord_buffer): undo previous change.
--------------------------------------------------------------
Dr Andy Piper
Principal Consultant, BEA Systems Ltd