X-Git-Url: http://git.chise.org/gitweb/?p=chise%2Fxemacs-chise.git.1;a=blobdiff_plain;f=src%2Ftoolbar-gtk.c;h=c0b613243384e2d5ef80ddc049351a298c310a33;hp=f2ec8c5ff0d5faee4b11133fe149126c6a3f945e;hb=dbf2768f7b146e97e37a27316f70bb313f1acf15;hpb=7ee7b9fd0c91842f267cf6e412286d647f68e32a diff --git a/src/toolbar-gtk.c b/src/toolbar-gtk.c index f2ec8c5..c0b6132 100644 --- a/src/toolbar-gtk.c +++ b/src/toolbar-gtk.c @@ -336,7 +336,8 @@ gtk_get_button_size (struct frame *f, Lisp_Object window, || tb->y != y \ || tb->width != width \ || tb->height != height \ - || tb->dirty) \ + || tb->dirty \ + || f->clear) /* This is clearly necessary. */ \ { \ if (width && height) \ { \ @@ -542,22 +543,30 @@ gtk_output_frame_toolbars (struct frame *f) if (FRAME_REAL_TOP_TOOLBAR_VISIBLE (f)) gtk_output_toolbar (f, TOP_TOOLBAR); - else if (f->top_toolbar_was_visible) - gtk_clear_toolbar (f, TOP_TOOLBAR, 0); - if (FRAME_REAL_BOTTOM_TOOLBAR_VISIBLE (f)) gtk_output_toolbar (f, BOTTOM_TOOLBAR); - else if (f->bottom_toolbar_was_visible) - gtk_clear_toolbar (f, BOTTOM_TOOLBAR, 0); - if (FRAME_REAL_LEFT_TOOLBAR_VISIBLE (f)) gtk_output_toolbar (f, LEFT_TOOLBAR); - else if (f->left_toolbar_was_visible) - gtk_clear_toolbar (f, LEFT_TOOLBAR, 0); - if (FRAME_REAL_RIGHT_TOOLBAR_VISIBLE (f)) gtk_output_toolbar (f, RIGHT_TOOLBAR); - else if (f->right_toolbar_was_visible) +} + +static void +gtk_clear_frame_toolbars (struct frame *f) +{ + assert (FRAME_GTK_P (f)); + + if (f->top_toolbar_was_visible + && !FRAME_REAL_TOP_TOOLBAR_VISIBLE (f)) + gtk_clear_toolbar (f, TOP_TOOLBAR, 0); + if (f->bottom_toolbar_was_visible + && !FRAME_REAL_BOTTOM_TOOLBAR_VISIBLE (f)) + gtk_clear_toolbar (f, BOTTOM_TOOLBAR, 0); + if (f->left_toolbar_was_visible + && !FRAME_REAL_LEFT_TOOLBAR_VISIBLE (f)) + gtk_clear_toolbar (f, LEFT_TOOLBAR, 0); + if (f->right_toolbar_was_visible + && !FRAME_REAL_RIGHT_TOOLBAR_VISIBLE (f)) gtk_clear_toolbar (f, RIGHT_TOOLBAR, 0); } @@ -663,6 +672,7 @@ void console_type_create_toolbar_gtk (void) { CONSOLE_HAS_METHOD (gtk, output_frame_toolbars); + CONSOLE_HAS_METHOD (gtk, clear_frame_toolbars); CONSOLE_HAS_METHOD (gtk, initialize_frame_toolbars); CONSOLE_HAS_METHOD (gtk, free_frame_toolbars); CONSOLE_HAS_METHOD (gtk, output_toolbar_button);