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 <tomi.belan@gmail.com> Signed-off-by: Julien Danjou <julien@danjou.info>
This commit is contained in:
parent
0194c5daf9
commit
7575f64993
|
@ -20,6 +20,13 @@ local function check_focus(obj)
|
||||||
local c = aclient.focus.history.get(obj.screen, 0)
|
local c = aclient.focus.history.get(obj.screen, 0)
|
||||||
if c then client.focus = c end
|
if c then client.focus = c end
|
||||||
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
|
end
|
||||||
|
|
||||||
atag.attached_add_signal(nil, "property::selected", check_focus)
|
atag.attached_add_signal(nil, "property::selected", check_focus)
|
||||||
|
|
Loading…
Reference in New Issue