fix: make sure sticky stays on same monitor until moved explicitely
Merge branch 'patch/sticky' into patch/singletagset-sticky
fix: correct behavior with other patches that change VISIBLEON
This fixes problems with patches like istticky,
where the sticky window would be visible on every monitor.
It's not. It should be visible only on its monitor.
SVIBISLBEON should always be adapted with those patches.
It's used just for singletagset when looking where a window
should be visible
fix: attach clients to reenabled monitor
fix: do not segfault on selmon NULL
Fix clients with NULL monitor being VISIBLEON
Fix getunusedtag, attachclients
If client is on multiple monitors, it should
be hidden, as the client is visible just on one of
the monitors, and on the other there is empty space instead
Unused tags are only the tags that are not on any
of the monitors.
put wlr_layer_shell top layer below fullscreen
fixes wlr_layer_shell top clients showing over fullscreen clients
properly resize on configurex11
Fix rule examples; minimize newbie surprises
Make example rules be actual EXAMPLES.
Now newcomers should not have to ask, "When I start firefox, nothing
happens. What is going on?"
Also clarified a minor typo and a consistency in spacing.
fix virtual pointers
When motionabsolute() is called from warpd, event->time_msec is 0, so
motionnotify() doesn't call wlr_cursor_move(). Fix this by explicitly
warping the cursor in this case, like it was done before implementing
pointer constraints.
I don't know if this is a bug in warpd or time_msec is always 0 with
virtual pointers, since the only other software that uses the virtual
pointer protocol I know of is wl-kbptr, and I can't get that to work
with dwl at all.
allow toggling the layout before selecting a different one
Update and correct patches/patches-wiki links
Signed-off-by: Leonardo Hernández Hernández <leohdz172@proton.me>
place child clients above fullscreen clients
When a child window of a fullscreen client is mapped, the fullscreen is
disabled, and if the previously fullscreen client is floating the child
window is rendered below it and cannot be seen, causing confusion,
though it is still focused and interactable.
Fix this by putting children of fullscreen clients in LyrFS instead of
LyrFloat, and by returning before the unset_fullscreen code is called
when they are mapped.
focusstack() now lets you switch focus from a fullscreen client to its
child windows, otherwise if you switch focus from the child window to
the fullscreen client you could not focus the child window again and the
fullscreen client would stay unresponsive.
Child clients are not reparented to LyrFloat after leaving fullscreen,
so you could spawn a child window, focus back the fullscreen client,
unfullscreen it, and the child window would still be drawn above other
floating clients. Avoid dealing with this edge case to keep the line
count low.
These cases can be tested by pressing Ctrl+o in applications with an
open file dialog.
make XWayland clients inherit tags and monitors
Revert 3213088 because the linked bug can no longer be reproduced with
wlroots 0.17, and update client_get_parent() so it doesn't segfault with
XWayland surfaces. This also allows reusing the p variable in the next
commit.