]> Dogcows Code - chaz/openbox/blobdiff - openbox/event.c
defn vars at the top of funcs
[chaz/openbox] / openbox / event.c
index 62d317f770873ad94f47c25bef38a0ca25c9fc20..68615facf7cc5258ccf8bcf71087f5f28ed7604a 100644 (file)
@@ -319,24 +319,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 +436,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.023758 seconds and 4 git commands to generate.