Only warp on menu close if it was also the top level menu.
authorMikael Magnusson <mikachu@gmail.com>
Fri, 8 Jan 2010 18:47:56 +0000 (19:47 +0100)
committerMikael Magnusson <mikachu@gmail.com>
Thu, 6 Nov 2014 03:49:20 +0000 (04:49 +0100)
openbox/menuframe.c

index fab2696..30730d9 100644 (file)
@@ -1112,6 +1112,9 @@ static void menu_frame_hide(ObMenuFrame *self)
     if (self->child)
         menu_frame_hide(self->child);
 
+    if (!self->parent && self->menu->warp)
+        XWarpPointer(obt_display, None, obt_root(ob_screen), 0, 0, 0, 0, self->ox, self->oy);
+
     if (self->parent) {
         remove_submenu_hide_timeout(self);
 
@@ -1129,9 +1132,6 @@ static void menu_frame_hide(ObMenuFrame *self)
         ungrab_keyboard();
     }
 
-    if (self->menu->warp)
-        XWarpPointer(obt_display, None, obt_root(ob_screen), 0, 0, 0, 0, self->ox, self->oy);
-
     ignore_start = event_start_ignore_all_enters();
     XUnmapWindow(obt_display, self->window);
     event_end_ignore_all_enters(ignore_start);