diff options
| author | Dana Jansens <danakj@orodu.net> | 2008-02-18 15:55:59 -0500 |
|---|---|---|
| committer | Dana Jansens <danakj@orodu.net> | 2008-02-18 20:42:35 -0500 |
| commit | 5bfa48dcffec3b00d119d851cb2427a43f80aa7b (patch) | |
| tree | 93c1c776e36d1b376241dbe1c5ccf1d4450b86d1 /openbox | |
| parent | 58788c781713092c6aa3a4544f8a06cd499ec4fd (diff) | |
Grab key bindings with GrabModeSync, so that if they lead to a keyboard grab, then no keyboard events will be lost between the initial keybinding and the keyboard grab.
Diffstat (limited to 'openbox')
| -rw-r--r-- | openbox/grab.c | 2 | ||||
| -rw-r--r-- | openbox/keyboard.c | 6 |
2 files changed, 5 insertions, 3 deletions
diff --git a/openbox/grab.c b/openbox/grab.c index 43e9a815..214666e5 100644 --- a/openbox/grab.c +++ b/openbox/grab.c @@ -222,7 +222,7 @@ void ungrab_passive_key(void) { /*ob_debug("ungrabbing %d passive grabs\n", passive_count);*/ if (passive_count) { - /* kill out passive grab */ + /* kill our passive grab */ XUngrabKeyboard(ob_display, event_curtime); passive_count = 0; } diff --git a/openbox/keyboard.c b/openbox/keyboard.c index c23d83e6..c318a4cf 100644 --- a/openbox/keyboard.c +++ b/openbox/keyboard.c @@ -53,13 +53,13 @@ static void grab_keys(gboolean grab) while (p) { if (p->key) grab_key(p->key, p->state, RootWindow(ob_display, ob_screen), - GrabModeAsync); + GrabModeSync); p = p->next_sibling; } if (curpos) grab_key(config_keyboard_reset_keycode, config_keyboard_reset_state, - RootWindow(ob_display, ob_screen), GrabModeAsync); + RootWindow(ob_display, ob_screen), GrabModeSync); } } @@ -263,6 +263,8 @@ void keyboard_event(ObClient *client, const XEvent *e) } p = p->next_sibling; } + + XAllowEvents(ob_display, AsyncKeyboard, event_curtime); } static void node_rebind(KeyBindingTree *node) |
