diff src/toolbar-common.c @ 905:c15f25529e61

[xemacs-hg @ 2002-07-06 21:05:42 by andyp] toolbar redisplay patch
author andyp
date Sat, 06 Jul 2002 21:05:58 +0000
parents 79c6ff3eef26
children 51a17f29fab3
line wrap: on
line diff
--- a/src/toolbar-common.c	Sat Jul 06 18:56:31 2002 +0000
+++ b/src/toolbar-common.c	Sat Jul 06 21:05:58 2002 +0000
@@ -396,7 +396,8 @@
 	    || tb->y != y						\
 	    || tb->width != width					\
 	    || tb->height != height					\
-	    || tb->dirty)						\
+	    || tb->dirty						\
+	    || f->clear) /* This is clearly necessary. */		\
 	  {								\
 	    if (width && height)					\
 	      {								\
@@ -612,22 +613,33 @@
 
   if (FRAME_REAL_TOP_TOOLBAR_VISIBLE (f))
     common_output_toolbar (f, TOP_TOOLBAR);
-  else if (f->top_toolbar_was_visible)
-    common_clear_toolbar (f, TOP_TOOLBAR, 0);
 
   if (FRAME_REAL_BOTTOM_TOOLBAR_VISIBLE (f))
     common_output_toolbar (f, BOTTOM_TOOLBAR);
-  else if (f->bottom_toolbar_was_visible)
-    common_clear_toolbar (f, BOTTOM_TOOLBAR, 0);
 
   if (FRAME_REAL_LEFT_TOOLBAR_VISIBLE (f))
     common_output_toolbar (f, LEFT_TOOLBAR);
-  else if (f->left_toolbar_was_visible)
-    common_clear_toolbar (f, LEFT_TOOLBAR, 0);
 
   if (FRAME_REAL_RIGHT_TOOLBAR_VISIBLE (f))
     common_output_toolbar (f, RIGHT_TOOLBAR);
-  else if (f->right_toolbar_was_visible)
+}
+
+void
+common_clear_frame_toolbars (struct frame *f)
+{
+  __INTERNAL_APPROPRIATENESS_CHECK(f);
+
+  if (f->top_toolbar_was_visible
+      && !FRAME_REAL_TOP_TOOLBAR_VISIBLE (f))
+    common_clear_toolbar (f, TOP_TOOLBAR, 0);
+  if (f->bottom_toolbar_was_visible
+      && !FRAME_REAL_BOTTOM_TOOLBAR_VISIBLE (f))
+    common_clear_toolbar (f, BOTTOM_TOOLBAR, 0);
+  if (f->left_toolbar_was_visible 
+      && !FRAME_REAL_LEFT_TOOLBAR_VISIBLE (f))
+    common_clear_toolbar (f, LEFT_TOOLBAR, 0);
+  if (f->right_toolbar_was_visible 
+       && !FRAME_REAL_RIGHT_TOOLBAR_VISIBLE (f))
     common_clear_toolbar (f, RIGHT_TOOLBAR, 0);
 }