Merge branch 'handleUnplug' into output-management
Closemon(), newmon as parameter
This allows to fix output-management: move clients to the monitor on the
left of the disabled one, instead of the leftmost (which might happen to
be the disabled one)
Also using wl_list_foreach() and then brake after the first iteration is
ugly and inefficient
Actually move clients away from a disabled mon
When using wlr-randr every monitor's configuration is reevaluated, so it
must check which monitors are actually being disabled. The only way to
correctly do that is to compare the names.
Merge branch 'handleUnplug' into output-management
Fix crash when unplugging a focused monitor
Just focus a "safe" monitor before trying to to anything risky
Move clients away from a disabled monitor
When a monitor is disabled with wlr_randr, all clients on that monitor
aren't lost but they are moved to the leftmost monitor with the same
method that handles monitor hot unplug
Merge branch 'handleUnplug' into output-management
closemon()
Separate oputput movement from cleanupmon
Merge branch 'handleUnplug' into output-management
fix compile error mixed declaration
Merge pull request #2 from guidocella/handleUnplug
Move sgeom assignment
Move sgeom assignment
There is no need to repeat this. This needs to be reculalculated in my
output-management implementation too, and since I'm already calling
updatemons, this patch avoids having to repeat the assignment again.
Implement the output management protocol
It allows clients such as wlr-randr to configure the display.
Keep client tags on unplug
When unplugging a monitor, each client is moved to the same tag number
as before on the new monitor
Handle monitor unplug
Floating widndows with "x < removed monitor's width" aren't resized
(they used to disappear in negative coordinates).
Actually delete monitors when they are unplugged, recalculate sgeom and
give a new monitor to clients that were on the removed one with setmon()
arrangefloat() funcion has been exploded to save iterations in
cleanupmon().
Also if a monitor that supports auto suspension is turned off, dwl will
count it as unplugged (it will become unreachable and all clients will
be moved to the leftmost monitor). However, if at least one monitor
isn't plugged in, dwl will still crash the same as before.
Unlike sway, when the output configuration is changed and restored,
(unplug + plug the same monitor for example) previous application
positions aren't kept. This is due to the fact that on sway every
workspace is unique among all monitors.