]> Dogcows Code - chaz/openbox/blobdiff - openbox/event.c
defn vars at the top of funcs
[chaz/openbox] / openbox / event.c
index b4bfd9baf73039b2f4e0bc0498d193acdd28d076..68615facf7cc5258ccf8bcf71087f5f28ed7604a 100644 (file)
@@ -22,12 +22,10 @@ static void event_handle_client(Client *c, XEvent *e);
 
 Time event_lasttime = 0;
 
-/*! A list of all possible combinations of keyboard lock masks */
-static unsigned int mask_list[8];
 /*! The value of the mask for the NumLock modifier */
-static unsigned int NumLockMask;
+unsigned int NumLockMask;
 /*! The value of the mask for the ScrollLock modifier */
-static unsigned int ScrollLockMask;
+unsigned int ScrollLockMask;
 /*! The key codes for the modifier keys */
 static XModifierKeymap *modmap;
 /*! Table of the constant modifier masks */
@@ -63,15 +61,6 @@ void event_startup()
                ScrollLockMask = mask_table[cnt / modmap->max_keypermod];
        }
     }
-
-    mask_list[0] = 0;
-    mask_list[1] = LockMask;
-    mask_list[2] = NumLockMask;
-    mask_list[3] = LockMask | NumLockMask;
-    mask_list[4] = ScrollLockMask;
-    mask_list[5] = ScrollLockMask | LockMask;
-    mask_list[6] = ScrollLockMask | NumLockMask;
-    mask_list[7] = ScrollLockMask | LockMask | NumLockMask;
 }
 
 void event_shutdown()
@@ -330,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);
@@ -461,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 */
@@ -520,8 +504,11 @@ static void event_handle_client(Client *client, XEvent *e)
            else if (!client->frame->visible)
                /* if its not visible for other reasons, then don't mess
                   with it */
-               return;
-           /*HOOKFIRECLIENT(requestactivate, client);XXX*/
+               break;
+            if (client->shaded)
+                client_shade(client, FALSE);
+            client_focus(client);
+            stacking_raise(client);
        }
        break;
     case PropertyNotify:
This page took 0.0223410000000001 seconds and 4 git commands to generate.