diff options
| -rw-r--r-- | openbox/keyboard.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/openbox/keyboard.c b/openbox/keyboard.c index 1f509f77..cef0dfd6 100644 --- a/openbox/keyboard.c +++ b/openbox/keyboard.c @@ -186,12 +186,15 @@ gboolean keyboard_process_interactive_grab(const XEvent *e, s->action->func(&s->action->data); - grab_keyboard(FALSE); - grab_pointer(FALSE, OB_CURSOR_NONE); - keyboard_reset_chains(); - g_free(s); + interactive_states = g_slist_delete_link(interactive_states, it); + if (!interactive_states) { + grab_keyboard(FALSE); + grab_pointer(FALSE, OB_CURSOR_NONE); + keyboard_reset_chains(); + } + handled = TRUE; } } |
