diff options
| author | Dana Jansens <danakj@orodu.net> | 2010-02-11 13:23:54 -0500 |
|---|---|---|
| committer | Dana Jansens <danakj@orodu.net> | 2010-02-11 13:34:46 -0500 |
| commit | 43d62990e407f409f76f60a405c529f9b15d33f6 (patch) | |
| tree | 66f551a32e8b8afb1764c28ab49308f042f26d35 /openbox/prompt.c | |
| parent | 8f1ea42bb147e2a65cf43dfe7aea864d01faedcd (diff) | |
don't strip the state for keyboard events
this allows translation of keys not in the base keyboard layout
Diffstat (limited to 'openbox/prompt.c')
| -rw-r--r-- | openbox/prompt.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/openbox/prompt.c b/openbox/prompt.c index 4f8930d7..73536152 100644 --- a/openbox/prompt.c +++ b/openbox/prompt.c @@ -520,15 +520,16 @@ void prompt_hide(ObPrompt *self) gboolean prompt_key_event(ObPrompt *self, XEvent *e) { gboolean shift; - guint shift_mask; + guint shift_mask, mods; if (e->type != KeyPress) return FALSE; shift_mask = obt_keyboard_modkey_to_modmask(OBT_KEYBOARD_MODKEY_SHIFT); - shift = !!(e->xkey.state & shift_mask); + mods = obt_keyboard_only_modmasks(e->xkey.state); + shift = !!(mods & shift_mask); /* only accept shift */ - if (e->xkey.state != 0 && e->xkey.state != shift_mask) + if (mods != 0 && mods != shift_mask) return FALSE; if (ob_keycode_match(e->xkey.keycode, OB_KEY_ESCAPE)) |
