Don't kill keygrabs when focus moves.
authorDana Jansens <danakj@orodu.net>
Tue, 8 Dec 2009 16:21:45 +0000 (11:21 -0500)
committerDana Jansens <danakj@orodu.net>
Tue, 8 Dec 2009 18:56:37 +0000 (13:56 -0500)
Applications should be better behaved by now, and GTK based apps seem to be
at least. We can file bug reports with them if we need to still.

openbox/client.c
openbox/focus.c

index 6113062..91693f9 100644 (file)
@@ -2621,10 +2621,6 @@ gboolean client_hide(ObClient *self)
     gboolean hide = FALSE;
 
     if (!client_should_show(self)) {
-        if (self == focus_client) {
-            event_cancel_all_key_grabs();
-        }
-
         /* We don't need to ignore enter events here.
            The window can hide/iconify in 3 different ways:
            1 - through an x message. in this case we ignore all enter events
@@ -3875,8 +3871,6 @@ gboolean client_focus(ObClient *self)
        go moving on us */
     event_halt_focus_delay();
 
-    event_cancel_all_key_grabs();
-
     xerror_set_ignore(TRUE);
     xerror_occured = FALSE;
 
index 63eb2cc..8c3bd70 100644 (file)
@@ -83,10 +83,6 @@ void focus_set_client(ObClient *client)
     screen_install_colormap(focus_client, FALSE);
     screen_install_colormap(client, TRUE);
 
-    /* in the middle of cycling..? kill it. */
-    focus_cycle_stop(focus_client);
-    focus_cycle_stop(client);
-
     focus_client = client;
 
     if (client != NULL) {
@@ -197,8 +193,6 @@ void focus_nothing(void)
     /* nothing is focused, update the colormap and _the root property_ */
     focus_set_client(NULL);
 
-    event_cancel_all_key_grabs();
-
     /* when nothing will be focused, send focus to the backup target */
     XSetInputFocus(ob_display, screen_support_win, RevertToPointerRoot,
                    event_curtime);