summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2007-05-14 23:32:50 +0000
committerDana Jansens <danakj@orodu.net>2007-05-14 23:32:50 +0000
commit47c8d407295bd910b2482f472d0a7e3892031647 (patch)
treec3cb306eea8533f38e0eb8d03526686aa7fd3413
parentb7827484ef77dc0a62a99da3bc067f6e1950b546 (diff)
don't assert, users can bind stuff however they like. but if they do something that moves focus during an interactive action, kill the grab
-rw-r--r--openbox/client.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/openbox/client.c b/openbox/client.c
index c68cd479..6446a794 100644
--- a/openbox/client.c
+++ b/openbox/client.c
@@ -3343,13 +3343,15 @@ gboolean client_focus(ObClient *self)
"Focusing client \"%s\" at time %u\n",
self->title, event_curtime);
- /* if we move focus during a grab, applications will get
- NotifyWhileGrabbed events and ignore them !
+ /* if there is a grab going on, then we need to cancel it. if we move
+ focus during the grab, applications will get NotifyWhileGrabbed events
+ and ignore them !
- interactive actions should not do anything that can move focus until
- their finishing.
+ actions should not rely on being able to move focus during an
+ interactive grab.
*/
- g_assert(!keyboard_interactively_grabbed());
+ if (keyboard_interactively_grabbed())
+ keyboard_interactive_cancel();
error = FALSE;
xerror_set_ignore(TRUE);