]> Dogcows Code - chaz/openbox/blobdiff - openbox/keyboard.c
new scaling based on the Bresenham algorithm
[chaz/openbox] / openbox / keyboard.c
index 37bff2711a5471167220b9904fd8518831e0e314..cef0dfd68364179545010102d024c43a8b416e56 100644 (file)
@@ -58,7 +58,7 @@ static void grab_keys(gboolean grab)
 
     grab_for_window(screen_support_win, grab);
     for (it = client_list; it; it = g_list_next(it))
-        grab_for_window(((ObClient*)it->data)->frame->window, grab);
+        grab_for_window(((ObClient*)it->data)->window, grab);
 }
 
 static gboolean chain_timeout(gpointer data)
@@ -186,12 +186,15 @@ gboolean keyboard_process_interactive_grab(const XEvent *e,
 
             s->action->func(&s->action->data);
 
-            grab_keyboard(FALSE);
-            grab_pointer(FALSE, OB_CURSOR_NONE);
-            keyboard_reset_chains();
-
             g_free(s);
+
             interactive_states = g_slist_delete_link(interactive_states, it);
+            if (!interactive_states) {
+                grab_keyboard(FALSE);
+                grab_pointer(FALSE, OB_CURSOR_NONE);
+                keyboard_reset_chains();
+            }
+
             handled = TRUE;
         }
     }
This page took 0.019932 seconds and 4 git commands to generate.