]> Dogcows Code - chaz/openbox/blobdiff - openbox/event.c
its G_BYTE_ORDER not G_ENDIAN.
[chaz/openbox] / openbox / event.c
index a5bb295a31a2fb5a7bccc266289e2a951ee66ff3..eea6583be8248053b456a2e1f165910ac457be31 100644 (file)
@@ -284,14 +284,13 @@ static gboolean event_ignore(XEvent *e, Client *client)
                   e->xfocus.window, e->xfocus.mode, e->xfocus.detail);
 #endif
 
-        /* Try process a FocusIn first, and if a legit one isn't found, then
-           do the fallback shiznit. */
         {
             XEvent fe;
             gboolean fallback = TRUE;
 
             while (TRUE) {
-                if (!XCheckTypedEvent(ob_display, FocusOut, &fe))
+                if (!XCheckTypedWindowEvent(ob_display, FocusOut,
+                                            e->xfocus.window,&fe))
                     if (!XCheckTypedEvent(ob_display, FocusIn, &fe))
                         break;
                 if (fe.type == FocusOut) {
@@ -407,7 +406,9 @@ static void event_process(XEvent *e)
             e->type == ButtonPress ||
             e->type == KeyPress || e->type == KeyRelease) {
             moveresize_event(e);
+
             return; /* no dispatch! */
+            
         }
 
     /* user input (action-bound) events */
@@ -497,7 +498,7 @@ static void event_handle_client(Client *client, XEvent *e)
 #endif
         /* focus state can affect the stacking layer */
         client_calc_layer(client);
-        frame_adjust_focus(client->frame);
+        frame_adjust_focus(client->frame, e->type == FocusIn);
        break;
     case EnterNotify:
         if (client_normal(client)) {
This page took 0.020765 seconds and 4 git commands to generate.