summaryrefslogtreecommitdiff
path: root/openbox
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2003-09-04 00:39:05 +0000
committerDana Jansens <danakj@orodu.net>2003-09-04 00:39:05 +0000
commitbd41f6ee1e0904311fe5ce01aab8bff104e0a27e (patch)
tree0b571e062e70449162ed66ebb422e76bb47f4e1c /openbox
parent922580e891016ba723d050af35da3a39cde62a7f (diff)
ungrab only as many times as we grabbed
Diffstat (limited to 'openbox')
-rw-r--r--openbox/keyboard.c11
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;
}
}