]> Dogcows Code - chaz/openbox/commitdiff
make either key work for people who have super_l and super_r (or whatever ones) bound...
authorDana Jansens <danakj@orodu.net>
Sat, 19 May 2007 21:17:01 +0000 (21:17 +0000)
committerDana Jansens <danakj@orodu.net>
Sat, 19 May 2007 21:17:01 +0000 (21:17 +0000)
openbox/keyboard.c

index ab9d05b09859c631b026bbf31d307adeba1b0c83..432599e8245ba68e968664e8e419d3f87a0443a7 100644 (file)
@@ -31,7 +31,6 @@
 #include "config.h"
 #include "keytree.h"
 #include "keyboard.h"
-#include "translate.h"
 #include "moveresize.h"
 #include "popup.h"
 #include "gettext.h"
@@ -293,7 +292,16 @@ void keyboard_event(ObClient *client, const XEvent *e)
         p = curpos->first_child;
     while (p) {
         if (p->key == e->xkey.keycode &&
-            p->state == e->xkey.state)
+            /* tricksy.
+               if you have Super_L and Super_R bound to different modXmasks,
+               this makes either mod mask count as Super
+
+               e.g. Super_L is mod1 and Super_R is mod2, so..
+               p->state = 00011
+               key state is just Super_L so 00001
+               00011 | 00001 == 00011 == p->state
+            */
+            (p->state | e->xkey.state) == p->state)
         {
             /* if we hit a key binding, then close any open menus and run it */
             if (menu_frame_visible)
This page took 0.025337 seconds and 4 git commands to generate.