summaryrefslogtreecommitdiff
path: root/openbox
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 /openbox
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
Diffstat (limited to 'openbox')
-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);