| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
m->link.next leads to errors if the monitor to disable doesn't have a
"next" (right) monitor and is currently focused. dirtmon() does more
checks.
In some previous commits m->link.next is told to be left monitor, which
is wrong
Also focusclient() explicitly checks for disabled monitors (this fixes
in case of more than one disabled monitor)
|
| |\ \ |
|
| | |/
| | |
| | |
| | |
| | | |
Focus newmon, which we know for sure that it isn't be unplugged or
disabled
|
| | |\ |
|
| | | |
| | | |
| | | |
| | | |
| | | | |
Before this, pressing mod+comma or mod+period (focusmon function) moved
the focus to disabed monitors. Now, all disabled monitors are skipped
|
| | | |
| | | |
| | | |
| | | | |
To the nearest monitor to the left of the disabled one
|
| |\ \ \ |
|
| | |\ \ \
| | | |/ /
| | |/| /
| | | |/ |
into handleUnplug
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
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
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
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.
|
| |\ \ \
| | | |/
| | |/| |
|
| | | |
| | | |
| | | |
| | | | |
Just focus a "safe" monitor before trying to to anything risky
|
| | |/ |
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | | |
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
|
| |\| |
|
| | |
| | |
| | |
| | | |
Separate oputput movement from cleanupmon
|
| |\| |
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | | |
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.
|
| | |
| | |
| | |
| | |
| | | |
When unplugging a monitor, each client is moved to the same tag number
as before on the new monitor
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Compensate the coordinate changes when adding a new monitor.
Every test so far confirms that monitors are always added to the left,
on top of the list, so every floating window's x coordinate has to be
incremented by the width of the new monitor.
|
| |/
| |
| |
| | |
It allows clients such as wlr-randr to configure the display.
|
|\ \
| | |
| | | |
#24 ensure that xwayland cursor defaults to left_ptr
|
| | | |
|
| |\ \ |
|
| | | | |
|
| | | | |
|
|\ \ \ \
| | | | |
| | | | | |
Sway scale_box (rounding)
|
| | | | | |
|
|\ \ \ \ \
| | | | | |
| | | | | | |
Fullscreen support
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
When a new client is spawned, fullscreen isn't disabled for all clients
in that monitor any more.
Instead, all fullscreen clients are kept fullscreen, while other clients
spawn in the background.
When fullscreen is disabled, all clients are rearranged.
This is made to make dwl more flexible allowing multiple fullscreen
clients at the same time, have floating clients on top of a fullscreen
one and let stuff happen without quitting fullscreen, like many other
WMs and DEs.
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Disable fullscreen on all visible clients in that monitor also before
enabling it on another client.
quitallfullscreen() is reintroduced becouse is now more useful
set c->isfullscreen later to avoid making quitallfullscreen() disable
fullscreen on the current client
|
| | | | | | |
|
| | | | | | |
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
After the removal of quitfullscreen() dwl wouldn't compile widh xwayland
enabled because createnotifyx11 was still using the old function
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
quitfullscreen() was replicating the functionalities of setfullscreen(c,
0)
Reusing setfullscreen() in quitfullscreen() leads to a 3 line function,
which is useless since quitfullscreen() is used once anyway
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
This fixes the bug that happens when changing workspace (or any time
arrange() is called) where there are fullscreen windows, which are still
fullscreen but leave the space for layer surfaces like waybar (which
should be hidden when going fullscreen)
Also as soon one fullscreen window is found hte function returns to
improve efficiency
|
| | | | | | |
|
| | | | | | |
|
| | | | | | |
|
| | | | | | |
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
mod+e allows to toggle fullscreen any client, even those who don't
support it themselves
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Windows lose fullscreen state when a new window is created in the same
tag
|
| | | | | | |
|
| | | | | | |
|
| | | | | | |
|
| | | | | | |
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Store position and size of windows before going fullscreen. This is more
efficient than arrange() and also works with floating windows
All the clients keep their original position because arrange() isn't
used after quitting fullscreen
|