]> Dogcows Code - chaz/openbox/blobdiff - openbox/focus.c
dont set the focused client if it's already set
[chaz/openbox] / openbox / focus.c
index 3c7b635baaa23b0712bce29cd7b9c445fbd4b5fa..df29b7b89cc720a39f7b4bfc6ae98cbfbe97f470 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,6 +32,7 @@ void focus_startup()
 void focus_set_client(Client *client)
 {
     Window active;
+    Client *old;
      
     /* 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
@@ -47,11 +48,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.022169 seconds and 4 git commands to generate.