diff options
| author | Dana Jansens <danakj@orodu.net> | 2007-05-14 23:32:50 +0000 |
|---|---|---|
| committer | Dana Jansens <danakj@orodu.net> | 2007-05-14 23:32:50 +0000 |
| commit | 47c8d407295bd910b2482f472d0a7e3892031647 (patch) | |
| tree | c3cb306eea8533f38e0eb8d03526686aa7fd3413 | |
| parent | b7827484ef77dc0a62a99da3bc067f6e1950b546 (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.c | 12 |
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); |
