]> Dogcows Code - chaz/openbox/blobdiff - openbox/event.c
add strict ansi compliance
[chaz/openbox] / openbox / event.c
index 62d317f770873ad94f47c25bef38a0ca25c9fc20..97e1412f00e902ef634b4949f360f44d08db14ca 100644 (file)
@@ -15,6 +15,9 @@
 #include <X11/Xlib.h>
 #include <X11/keysym.h>
 #include <X11/Xatom.h>
+#ifdef HAVE_SYS_SELECT_H
+#  include <sys/select.h>
+#endif
 
 static void event_process(XEvent *e);
 static void event_handle_root(XEvent *e);
@@ -319,24 +322,10 @@ static void event_handle_client(Client *client, XEvent *e)
      
     switch (e->type) {
     case FocusIn:
-       client->focused = TRUE;
-       engine_frame_adjust_focus(client->frame);
-
-       /* focus state can affect the stacking layer */
-       client_calc_layer(client);
-
-        if (focus_client != client)
-            focus_set_client(client);
+        client_set_focused(client, TRUE);
        break;
     case FocusOut:
-       client->focused = FALSE;
-       engine_frame_adjust_focus(client->frame);
-
-       /* focus state can affect the stacking layer */
-       client_calc_layer(client);
-
-       if (focus_client == client)
-           focus_set_client(NULL);
+        client_set_focused(client, FALSE);
        break;
     case ConfigureRequest:
        g_message("ConfigureRequest for window %lx", client->window);
@@ -450,7 +439,16 @@ static void event_handle_client(Client *client, XEvent *e)
        /* we shouldn't be able to get this unless we're iconic */
        g_assert(client->iconic);
 
-       /*HOOKFIRECLIENT(requestactivate, client);XXX*/
+        if (screen_showing_desktop)
+            screen_show_desktop(FALSE);
+        client_iconify(client, FALSE, TRUE);
+        if (!client->frame->visible)
+            /* if its not visible still, then don't mess with it */
+            break;
+        if (client->shaded)
+            client_shade(client, FALSE);
+        client_focus(client);
+        stacking_raise(client);
        break;
     case ClientMessage:
        /* validate cuz we query stuff off the client here */
This page took 0.025977 seconds and 4 git commands to generate.