]> Dogcows Code - chaz/openbox/blobdiff - openbox/focus.c
use the last event timestamp when focusing the focus_backup
[chaz/openbox] / openbox / focus.c
index 551959f4538261e05534f3d27c9fcef7e0456218..8a6db00a548ad75b44832114a04a8763e78c518e 100644 (file)
@@ -1,8 +1,10 @@
+#include "event.h"
 #include "openbox.h"
 #include "client.h"
 #include "screen.h"
 #include "prop.h"
 #include "dispatch.h"
+#include "focus.h"
 
 #include <X11/Xlib.h>
 #include <glib.h>
@@ -13,8 +15,6 @@ GList **focus_order = NULL; /* these lists are created when screen_startup
 
 Window focus_backup = None;
 
-void focus_set_client(Client *client);
-
 void focus_startup()
 {
     /* create the window which gets focus when no clients get it. Have to
@@ -41,11 +41,12 @@ void focus_shutdown()
     for (i = 0; i < screen_num_desktops; ++i)
         g_list_free(focus_order[i]);
     g_free(focus_order);
+    focus_order = NULL;
 
     XDestroyWindow(ob_display, focus_backup);
 
     /* reset focus to root */
-    XSetInputFocus(ob_display, PointerRoot, RevertToNone, CurrentTime);
+    XSetInputFocus(ob_display, PointerRoot, RevertToNone, event_lasttime);
 }
 
 void focus_set_client(Client *client)
@@ -61,7 +62,7 @@ void focus_set_client(Client *client)
 
     if (client == NULL) {
        /* when nothing will be focused, send focus to the backup target */
-       XSetInputFocus(ob_display, focus_backup, RevertToNone, CurrentTime);
+       XSetInputFocus(ob_display, focus_backup, RevertToNone, event_lasttime);
     }
 
     old = focus_client;
This page took 0.021742 seconds and 4 git commands to generate.