]> Dogcows Code - chaz/openbox/blobdiff - openbox/event.c
very cool struts. partial struts actually are partial struts now. possibly way broken...
[chaz/openbox] / openbox / event.c
index 9dd78c17934960dd6d4f3bce946b633445447b97..ccf4bb65ece5402ac0b5960fed327a6bbfa05c4b 100644 (file)
@@ -1488,7 +1488,9 @@ static void event_handle_client(ObClient *client, XEvent *e)
             /* normal hints can make a window non-resizable */
             client_setup_decor_and_functions(client, FALSE);
 
-            /* make sure the client's sizes are within its bounds */
+            /* make sure the client's sizes are within its bounds, but only
+               reconfigure the window if it needs to. emacs will update its
+               normal hints every time it receives a conigurenotify */
             RECT_TO_DIMS(client->area, x, y, w, h);
             client_try_configure(client, &x, &y, &w, &h, &lw, &lh, FALSE);
             if (!RECT_EQUAL_DIMS(client->area, x, y, w, h)) {
@@ -1828,10 +1830,9 @@ static void event_handle_user_input(ObClient *client, XEvent *e)
                in the case where it is animating before disappearing */
             if (!client || !frame_iconify_animating(client->frame))
                 mouse_event(client, e);
-        } else if (e->type == KeyPress) {
+        } else
             keyboard_event((focus_cycle_target ? focus_cycle_target :
                             (client ? client : focus_client)), e);
-        }
     }
 }
 
@@ -1920,20 +1921,20 @@ static gboolean is_enter_focus_event_ignored(XEvent *e)
 
 void event_cancel_all_key_grabs()
 {
-    if (keyboard_interactively_grabbed())
+    if (keyboard_interactively_grabbed()) {
         keyboard_interactive_cancel();
-    else if (menu_frame_visible)
+        ob_debug("KILLED interactive event\n");
+    }
+    else if (menu_frame_visible) {
         menu_frame_hide_all();
-    else if (grab_on_keyboard())
+        ob_debug("KILLED open menus\n");
+    }
+    else if (grab_on_keyboard()) {
         ungrab_keyboard();
+        ob_debug("KILLED active grab on keyboard\n");
+    }
     else
-        /* If we don't have the keyboard grabbed, then ungrab it with
-           XUngrabKeyboard, so that there is not a passive grab left
-           on from the KeyPress. If the grab is left on, and focus
-           moves during that time, it will be NotifyWhileGrabbed, and
-           applications like to ignore those! */
-        XUngrabKeyboard(ob_display, CurrentTime);
-
+        ungrab_passive_key();
 }
 
 gboolean event_time_after(Time t1, Time t2)
This page took 0.023674 seconds and 4 git commands to generate.