]> Dogcows Code - chaz/openbox/blobdiff - openbox/prompt.c
don't strip the state for keyboard events
[chaz/openbox] / openbox / prompt.c
index 4f8930d7872d4261de50fce567ad8b9c0b128c80..73536152ac687c21de05418d359f746ff16ca40e 100644 (file)
@@ -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))
This page took 0.022075 seconds and 4 git commands to generate.