~ruther/dwl

5a16649e — Stivvo 4 years ago
Keep windows fullscreen after redraw

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
02a09cb8 — Stivvo 4 years ago
Set fullscreen simpler
cb9269df — Stivvo 4 years ago
use m->m (fullscreen on top of layers)
36b9831f — Guido Cella 4 years ago
fix typo
5bd9be3a — Stivvo 4 years ago
Allow borderpx = 0
f125e1b9 — Stivvo 4 years ago
Toggle fullscreen on all clients

mod+e allows to toggle fullscreen any client, even those who don't
support it themselves
d41cc60e — Stivvo 4 years ago
Handle new windows

Windows lose fullscreen state when a new window is created in the same
tag
2abfd475 — Stivvo 4 years ago
isfullscreen int
af68b710 — Stivvo 4 years ago
Same fscreen func for xdg and xwayland
64113a68 — Stivvo 4 years ago
Fullscreen xwayland
573535c8 — Stivvo 4 years ago
Unlink fullscreen
60a732ce — Stivvo 4 years ago
Restore windows after fullscreen

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
de6db974 — Stivvo 4 years ago
No borders on fullscreen windows

Some code has been borrowed from the smartBorders patch
dd3920e7 — Stivvo 4 years ago
Toggle fullscreen
0f04c763 — Stivvo 4 years ago
Basic fullscreen
0f48c955 — Guido Cella 4 years ago
handle the x11 configure event

This fixes the window size of old games in Wine.
0016a209 — Guido Cella 4 years ago
implement the virtual keyboard protocol

This is used by wtype.

Also properly cleanup keyboards. Without wl_list_remove(&kb->link) dwl
crashed after using wtype 2-3 times.
90cc3b1e — Guido Cella 4 years ago
Allow toggling the layout before selecting a different one
41cc23e1 — Guido Cella 4 years ago
Implement the idle protocol

It allows clients such as swayidle and chat applications to monitor user
idle time.
1024928c — Guido Cella 4 years ago
deactivate focused client when spawning a new one

Because maprequest immediately calls wl_list_insert(&fstack, &c->flink),
in the following call to setmon(), the selclient() which is passed to
focusclient() as the old client is actually the newly mapped client, and
the real old one is never deactivated. You can see this by, for example,
opening Chromium's devtools, then spawning a terminal. The background of
the focused line in the devtools doesn't change from light blue to grey.

We can't just remove wl_list_insert(&fstack, &c->flink) from maprequest,
because calling wl_list_remove in focusclient() with a client that has
not been added to the list causes a segmentation fault.
Therefore we fix the focusclient call by not passing it the old client
every time, but instead using the wlroots function that gets the focused
surface and deactivate that, like in TinyWL.
This also avoids getting the selected client and passing it to
focusclient() on every call unnecessarily, and will allow removing
shouldfocusclients in a future commit by checking if old is a layer
surface instead.
Next
Do not follow this link