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
Dana Jansens danakj@orodu.net
1 files changed,
7 insertions(+),
5 deletions(-)
jump to
M
openbox/client.c
→
openbox/client.c
@@ -3343,13 +3343,15 @@ ob_debug_type(OB_DEBUG_FOCUS,
"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);