diff options
Diffstat (limited to 'openbox')
| -rw-r--r-- | openbox/client.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/openbox/client.c b/openbox/client.c index 6446a794..837dd019 100644 --- a/openbox/client.c +++ b/openbox/client.c @@ -2421,6 +2421,18 @@ gboolean client_hide(ObClient *self) gboolean hide = FALSE; if (!client_should_show(self)) { + if (self == focus_client) { + /* 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 ! + + actions should not rely on being able to move focus during an + interactive grab. + */ + if (keyboard_interactively_grabbed()) + keyboard_interactive_cancel(); + } + frame_hide(self->frame); hide = TRUE; } |
