]> Dogcows Code - chaz/openbox/commitdiff
don't queue focusing actions. so they don't hide the menu right away
authorDana Jansens <danakj@orodu.net>
Sun, 27 May 2007 05:07:17 +0000 (05:07 +0000)
committerDana Jansens <danakj@orodu.net>
Sun, 27 May 2007 05:07:17 +0000 (05:07 +0000)
openbox/action.c

index d16d13f19a02c1df7465420c35e2f2763556679a..6e4cd186ed8d6642e4c5d78e2ac5a0a6e6c2bcb1 100644 (file)
@@ -1151,13 +1151,9 @@ void action_run_list(GSList *acts, ObClient *c, ObFrameContext context,
             {
                 /* interactive actions are not queued */
                 a->func(&a->data);
-            } else if (c &&
-                       (context == OB_FRAME_CONTEXT_CLIENT ||
-                        (c->type == OB_CLIENT_TYPE_DESKTOP &&
-                         context == OB_FRAME_CONTEXT_DESKTOP)) &&
-                       (a->func == action_focus ||
-                        a->func == action_activate ||
-                        a->func == action_showmenu))
+            } else if (a->func == action_focus ||
+                       a->func == action_activate ||
+                       a->func == action_showmenu)
             {
                 /* XXX MORE UGLY HACK
                    actions from clicks on client windows are NOT queued.
@@ -1177,11 +1173,15 @@ void action_run_list(GSList *acts, ObClient *c, ObFrameContext context,
                    pointer. ugh.
 
                    also with the menus, there is a race going on. if the
-                   desktop wants to pop up a menu, and we do to, we send them
+                   desktop wants to pop up a menu, and we do too, we send them
                    the button before we pop up the menu, so they pop up their
                    menu first. but not always. if we pop up our menu before
                    sending them the button press, then the result is
                    deterministic. yay.
+
+                   XXX further more. focus actions are not queued at all,
+                   because if you bind focus->showmenu, the menu will get
+                   hidden to do the focusing
                 */
                 a->func(&a->data);
             } else
This page took 0.028547 seconds and 4 git commands to generate.