From 064f4c92fde673790232e64e18adc1581717a2c8 Mon Sep 17 00:00:00 2001 From: Tomi Belan Date: Thu, 12 Nov 2009 17:13:57 +0100 Subject: [PATCH] awful.autofocus: fix multiple screens autofocus There might be multiple screens with visible windows. When closing the last window of the current screen, try to focus them as well. If no window has focus and yet some windows are visible (e.g. on another screen), awesome misbehaves: it uses sloppy keyboard focus (as is the X11 default), but doesn't refresh their border colors or tasklists etc. Signed-off-by: Tomi Belan Signed-off-by: Julien Danjou --- lib/awful/autofocus.lua.in | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/lib/awful/autofocus.lua.in b/lib/awful/autofocus.lua.in index 923fabf3..bed228a9 100644 --- a/lib/awful/autofocus.lua.in +++ b/lib/awful/autofocus.lua.in @@ -20,6 +20,13 @@ local function check_focus(obj) local c = aclient.focus.history.get(obj.screen, 0) if c then client.focus = c end end + -- If we didn't find a client, try other screens. + if not client.focus or not client.focus:isvisible() then + for i = 1, screen.count() do + local c = aclient.focus.history.get(i, 0) + if c and c:isvisible() then client.focus = c; return end + end + end end atag.attached_add_signal(nil, "property::selected", check_focus)