don't queue showmenu events, and set button to 0 when a grab is in place after the...
authorDana Jansens <danakj@orodu.net>
Wed, 16 May 2007 03:07:17 +0000 (03:07 +0000)
committerDana Jansens <danakj@orodu.net>
Wed, 16 May 2007 03:07:17 +0000 (03:07 +0000)
openbox/action.c
openbox/mouse.c

index 5900de7..b01f9d3 100644 (file)
@@ -1143,7 +1143,7 @@ void action_run_list(GSList *acts, ObClient *c, ObFrameContext context,
                button release gettnig processed first. answer: don't queue
                moveresize starts. UGLY HACK XXX */
             if (a->data.any.interactive || a->func == action_move ||
-                a->func == action_resize)
+                a->func == action_resize || a->func == action_showmenu)
             {
                 /* interactive actions are not queued */
                 a->func(&a->data);
index 8b0cfcc..78e25d8 100644 (file)
@@ -205,6 +205,11 @@ void mouse_event(ObClient *client, XEvent *e)
                      e->xbutton.x_root, e->xbutton.y_root,
                      e->xbutton.time);
 
+        /* if the bindings grab the pointer, there won't be a ButtonRelease
+           event for us */
+        if (grab_on_pointer())
+            button = 0;
+
         if (CLIENT_CONTEXT(context, client)) {
             /* Replay the event, so it goes to the client*/
             XAllowEvents(ob_display, ReplayPointer, event_curtime);