]> Dogcows Code - chaz/openbox/blobdiff - openbox/focus.c
add 'grab_server' for grabbing .. the .. server!
[chaz/openbox] / openbox / focus.c
index 3c7b635baaa23b0712bce29cd7b9c445fbd4b5fa..cfc3485e25734121cec6e0fb919557165ca94c80 100644 (file)
@@ -2,7 +2,7 @@
 #include "client.h"
 #include "screen.h"
 #include "prop.h"
-#include "hooks.h"
+#include "dispatch.h"
 
 #include <X11/Xlib.h>
 
@@ -32,10 +32,7 @@ void focus_startup()
 void focus_set_client(Client *client)
 {
     Window active;
-     
-    /* sometimes this is called with the already-focused window, this is
-       important for the python scripts to work (eg, c = 0 twice). don't just
-       return if _focused_client == c */
+    Client *old;
 
     /* uninstall the old colormap, and install the new one */
     screen_install_colormap(focus_client, FALSE);
@@ -47,11 +44,15 @@ void focus_set_client(Client *client)
        XSetInputFocus(ob_display, focus_backup, RevertToNone, CurrentTime);
     }
 
+    old = focus_client;
     focus_client = client;
 
     /* set the NET_ACTIVE_WINDOW hint */
     active = client ? client->window : None;
     PROP_SET32(ob_root, net_active_window, window, active);
 
-    HOOKFIRECLIENT(focused, client);
+    if (focus_client != NULL)
+        dispatch_client(Event_Client_Focus, focus_client, 0, 0);
+    if (old != NULL)
+        dispatch_client(Event_Client_Unfocus, old, 0, 0);
 }
This page took 0.021663 seconds and 4 git commands to generate.