emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] master e605af8: * xlwmenu.c (remap_menubar): Re-realize me


From: Jan D.
Subject: [Emacs-diffs] master e605af8: * xlwmenu.c (remap_menubar): Re-realize menu to force move under Gnome 3.
Date: Sat, 28 Feb 2015 15:20:55 +0000

branch: master
commit e605af8880f9e0670f62e6646bb12e53c9c5cfa8
Author: Jan D <address@hidden>
Commit: Jan D <address@hidden>

    * xlwmenu.c (remap_menubar): Re-realize menu to force move under Gnome 3.
---
 lwlib/ChangeLog |    5 +++++
 lwlib/xlwmenu.c |   15 ++++++++++-----
 2 files changed, 15 insertions(+), 5 deletions(-)

diff --git a/lwlib/ChangeLog b/lwlib/ChangeLog
index 8d536f0..c98d725 100644
--- a/lwlib/ChangeLog
+++ b/lwlib/ChangeLog
@@ -1,3 +1,8 @@
+2015-02-28  Jan Djärv  <address@hidden>
+
+       * xlwmenu.c (remap_menubar): Re-realize menu to force move under
+       Gnome 3.
+
 2015-01-04  Paul Eggert  <address@hidden>
 
        Less 'make' chatter for lwlib
diff --git a/lwlib/xlwmenu.c b/lwlib/xlwmenu.c
index 4cd0e42..f781b7e 100644
--- a/lwlib/xlwmenu.c
+++ b/lwlib/xlwmenu.c
@@ -1510,17 +1510,21 @@ remap_menubar (XlwMenuWidget mw)
       if (mw->menu.horizontal && i == 1)
        ws->y += mw->menu.margin;
 
+      /* WMs like Gnome 3 ignores requests to move windows.  So we
+         must destroy the current one and create a new to get it to move.  */
+      XtUnrealizeWidget (ws->w);
+      XtRealizeWidget (ws->w);
+      ws->window = XtWindow (ws->w);
+
       size_menu (mw, i);
 
       fit_to_screen (mw, ws, previous_ws, mw->menu.horizontal && i == 1);
 
       create_pixmap_for_menu (ws, mw);
-      XtMoveWidget (ws->w, ws->x, ws->y);
-      XtPopup (ws->w, XtGrabNone);
-      XtResizeWidget (ws->w, ws->width, ws->height,
-                      mw->core.border_width);
-      XtResizeWindow (ws->w);
+      XtConfigureWidget (ws->w, ws->x, ws->y, ws->width, ws->height,
+                        ws->w->core.border_width);
       display_menu (mw, i, False, &selection_position, NULL, NULL);
+      XtPopup (ws->w, XtGrabNone);
     }
 
   /* unmap the menus that popped down */
@@ -2615,6 +2619,7 @@ pop_up_menu (XlwMenuWidget mw, XButtonPressedEvent *event)
   mw->menu.popped_up = True;
   if (XtIsShell (XtParent ((Widget)mw)))
     {
+      fprintf(stderr, "Config %d %d\n", x, y);
       XtConfigureWidget (XtParent ((Widget)mw), x, y, w, h,
                         XtParent ((Widget)mw)->core.border_width);
       XtPopup (XtParent ((Widget)mw), XtGrabExclusive);



reply via email to

[Prev in Thread] Current Thread [Next in Thread]