]> Dogcows Code - chaz/openbox/commitdiff
fix grabbing and not releasing with menus
authorDana Jansens <danakj@orodu.net>
Sat, 30 Aug 2003 05:04:08 +0000 (05:04 +0000)
committerDana Jansens <danakj@orodu.net>
Sat, 30 Aug 2003 05:04:08 +0000 (05:04 +0000)
openbox/menuframe.c

index 34c7fd85852ab19cf2dd2d81ba3319a353f17132..bfa2b4be66eec5085fd8e497ff89120346b32355 100644 (file)
@@ -488,14 +488,14 @@ void menu_frame_hide(ObMenuFrame *self)
         self->parent->child = NULL;
     self->parent = NULL;
 
+    menu_frame_visible = g_list_delete_link(menu_frame_visible, it);
+
     if (menu_frame_visible == NULL) {
         /* last menu shown */
         grab_pointer(FALSE, None);
         grab_keyboard(FALSE);
     }
 
-    menu_frame_visible = g_list_delete_link(menu_frame_visible, it);
-
     XUnmapWindow(ob_display, self->window);
 
     menu_frame_free(self);
@@ -623,7 +623,18 @@ void menu_entry_frame_execute(ObMenuEntryFrame *self, gboolean hide)
             {
                 ObAction *act = it->data;
                 act->data.any.c = client;
-                act->func(&act->data);
+
+                if (act->func == action_moveresize)
+                    screen_pointer_pos(&act->data.moveresize.x,
+                                       &act->data.moveresize.y);
+
+                if (!(act->func == action_cycle_windows ||
+                      act->func == action_desktop_dir ||
+                      act->func == action_send_to_desktop_dir ||
+                      act->func == action_showmenu))
+                {
+                    act->func(&act->data);
+                }
             }
         }
     }
This page took 0.027055 seconds and 4 git commands to generate.