make either key work for people who have super_l and super_r (or whatever ones) bound to different mod masks
This commit is contained in:
parent
ecdb7d5807
commit
2f541b6ef3
1 changed files with 10 additions and 2 deletions
|
@ -31,7 +31,6 @@
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
#include "keytree.h"
|
#include "keytree.h"
|
||||||
#include "keyboard.h"
|
#include "keyboard.h"
|
||||||
#include "translate.h"
|
|
||||||
#include "moveresize.h"
|
#include "moveresize.h"
|
||||||
#include "popup.h"
|
#include "popup.h"
|
||||||
#include "gettext.h"
|
#include "gettext.h"
|
||||||
|
@ -293,7 +292,16 @@ void keyboard_event(ObClient *client, const XEvent *e)
|
||||||
p = curpos->first_child;
|
p = curpos->first_child;
|
||||||
while (p) {
|
while (p) {
|
||||||
if (p->key == e->xkey.keycode &&
|
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 we hit a key binding, then close any open menus and run it */
|
||||||
if (menu_frame_visible)
|
if (menu_frame_visible)
|
||||||
|
|
Loading…
Reference in a new issue