(XlwMenuSetValues): Only frob the display if the menu is actually displayed.
authorMiles Bader <miles@gnu.org>
Mon, 4 Sep 2000 11:55:02 +0000 (11:55 +0000)
committerMiles Bader <miles@gnu.org>
Mon, 4 Sep 2000 11:55:02 +0000 (11:55 +0000)
lwlib/xlwmenu.c

index 1ced18a..2239fb4 100644 (file)
@@ -1813,15 +1813,17 @@ XlwMenuSetValues (current, request, new)
 
       redisplay = True;
       
-      for (i = 0; i < oldmw->menu.windows_length; i++)
-       {
-         XSetWindowBackground (XtDisplay (oldmw),
-                               oldmw->menu.windows [i].window,
-                               newmw->core.background_pixel);
-         /* clear windows and generate expose events */
-         XClearArea (XtDisplay (oldmw), oldmw->menu.windows[i].window,
-                     0, 0, 0, 0, True);
-       }
+      if (XtIsRealized (oldmw))
+       /* If the menu is currently displayed, change the display.  */
+       for (i = 0; i < oldmw->menu.windows_length; i++)
+         {
+           XSetWindowBackground (XtDisplay (oldmw),
+                                 oldmw->menu.windows [i].window,
+                                 newmw->core.background_pixel);
+           /* clear windows and generate expose events */
+           XClearArea (XtDisplay (oldmw), oldmw->menu.windows[i].window,
+                       0, 0, 0, 0, True);
+         }
     }
 
   return redisplay;