fix multi monitors further
Fix layer surfaces without an exculsive area by using the right x and y
for the current monitor (by Stivvo).
remove unneeded line
The bug was caused by usable_area's x and y not being set in
arrangelayers. For example if on a 2nd HD monitor, x should be 1920
while the first one ends at 1919. So I don't see why m->m should be
recalculated after creating the monitor.
try to fix again
Calculate x and y of usable_area, not just width and heigth.
fix multi monitors
If you don't recalculate the monitor's geometry before arranging,
clients get arranged in the first monitor. I don't understand why this
fixes the bug since tile() uses m->w rather than m->m, nor why it needs
to be recalculated after creating the monitor but sway does it too.
Although not necessary to fix the bug I also made arrangelayer() do like
sway again and recalculate usable_area instead of reusing m->m, since
m->m seems to be incorrect until it gets recalculated shortly after in
arrange(), so I suspect that leaving usable_area = m->m will cause
issues under certain circumstances.
Someone with a multi-monitor setup or better knowledge of Wayland may be
able to figure out the cause of the bug. For now, this makes layer shell
work.
rename variable and merge 2 lines
use unsigned int for loop indexes
Don't let overlays lose focus
if you open a new window while an overlay is mapped, the overlay should
stay focused
fix restoring pointer focus
I don't know why I thought it was working before. Maybe I should go do
something else.
remove comment
I don't know why it wasn't working before but now it does ¯\(ツ)/¯
(it wasn't caused by the just removed code either)
remove mysterious code
Why would a surface that's not keyboard interactive get focused? Let's
remove this for now and see if issues arise.
focus the previous client in the similar code too
refocus old client
When a layer surface is destroyed focus should be returned to the last
client. Luckily if there are multiple overlays the previous overlay
still gets focused.
simplify focus leave condition