summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--openbox/event.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/openbox/event.c b/openbox/event.c
index 05024e72..bb138d3d 100644
--- a/openbox/event.c
+++ b/openbox/event.c
@@ -355,8 +355,15 @@ static void event_done(gpointer data)
focus_hilite = focus_in;
if (focus_client != last) {
- if (!focus_client)
- focus_fallback(OB_FOCUS_FALLBACK_NOFOCUS);
+ if (!focus_client) {
+ Window w;
+ int r;
+
+ /* is focus anywhere valid? */
+ XGetInputFocus(ob_display, &w, &r);
+ if (!w || w == RootWindow(ob_display, ob_screen))
+ focus_fallback(OB_FOCUS_FALLBACK_NOFOCUS);
+ }
last = focus_client;
}