This fixes Stephen's problem with toolbar layout changes hosing the
gutter. Stephen I won't apply this to the windows branch unless that
makes things easier for you.
andy
2002-06-24 Andy Piper <andy(a)xemacs.org>
* toolbar-gtk.c (GTK_OUTPUT_BUTTONS_LOOP): output button if whole
toolbar was cleared.
* toolbar-msw.c (mswindows_clear_frame_toolbars): new
function. Split out from mswindows_output_frame_toolbars.
(mswindows_output_frame_toolbars): move clear pieces to
mswindows_output_frame_toolbars.
* toolbar-gtk.c (gtk_clear_frame_toolbars): new function. Split
out from gtk_output_frame_toolbars.
(gtk_output_frame_toolbars): move clear pieces to
gtk_clear_frame_toolbars.
* toolbar-x.c (X_OUTPUT_BUTTONS_LOOP): always output buttons when
the frame is cleared. How this ever worked before is a mystery.
(x_output_frame_toolbars): Only output toolbars.
(x_clear_frame_toolbars): new. Clear previous toolbar locations.
* console.h (struct console_methods): add
clear_frame_toolbars_method.
* redisplay.c (redisplay_frame): call
update_frame_toolbars_geometry and re-order update_frame_toolbars.
* toolbar.h: declare update_frame_toolbars_geometry.
* toolbar.c (update_frame_toolbars_geometry): new function. Split
out from update_frame_toolbars. Call clear_frame_toolbars.
(update_frame_toolbars): only output, do not change geometry.
* redisplay.c: add frame_layout_changed.
* redisplay.h: add frame_layout_changed.
(CLASS_RESET_CHANGED_FLAGS): set it.
(GLOBAL_RESET_CHANGED_FLAGS): ditto.
(CLASS_REDISPLAY_FLAGS_CHANGEDP): test it.
(GLOBAL_REDISPLAY_FLAGS_CHANGEDP): ditto.
* device.h (struct device): add frame_layout_changed.
(MARK_DEVICE_FRAME_LAYOUT_CHANGED): new.
* frame.h (struct frame): add frame_layout_changed.
(MARK_FRAME_LAYOUT_CHANGED): new.