Johan Malm [Fri, 25 Feb 2022 22:31:24 +0000 (22:31 +0000)]
Add node-descriptor for wlr_scene_nodes
Support identification of wlr_scene_node role to enable simplification
of codebase including the avoidance of iterating over lists of
layer-surface, menuitems, and so on.
Consolatis [Fri, 25 Feb 2022 20:31:21 +0000 (21:31 +0100)]
xwayland.c: Fix positioning with multiple queued configure events
Prevents a single action like ToggleDecorations + ToggleMaximize to
position the view somewhere with negative coordinates when unmaximizing.
It may still position the view on negative coordinates but later commit
events will fix the position. This issue only exists on xwayland because
there are no configure serials which we could use to ignore all
repositioning until we are at the latest desired state.
Michael Weiss [Fri, 4 Feb 2022 20:17:05 +0000 (21:17 +0100)]
build: Relax the version constraint for wlroots to accept patch releases
Patch releases only contain backwards compatible changes (mainly bug
fixes) so we want to allow them. This fixes the build with the recently
released wlroots 0.15.1 and uses the same version constraints as other
projects that depend on wlroots (e.g., Sway).
Liam Middlebrook [Thu, 20 Jan 2022 19:38:23 +0000 (11:38 -0800)]
output: Add option to preview the contents of the current cycle_view
Add the 'cycleViewPreview.core' option to rc.xml to enable previews of
the selected view when cycling between windows. Default this option to
be disabled to match current behavior.
Consolatis [Mon, 17 Jan 2022 22:02:59 +0000 (23:02 +0100)]
Short term solution to prevent segfaulting on TTY switch. See #206.
This will still prevent touchscreens or other absolute pointers to
function correctly after switching the TTY when using a multi
screen setup. But that is still better than segfaulting.
John Lindgren [Sat, 8 Jan 2022 07:47:30 +0000 (02:47 -0500)]
cursor: More reliably clear "pressed" status of mouse bindings
The "pressed" status of the mouse button is stored per-binding, and
the first binding activated causes us to break out of the loop that
cleared the "pressed" status -- as a result, some statused weren't
cleared when another binding was activated.
The bug could be seen when clicking the maximize button on a window
and then moving the mouse: the DRAG action would continue to move
the window (unmaximizing it) even though the mouse button was no
longer held.
John Lindgren [Sat, 8 Jan 2022 07:01:14 +0000 (02:01 -0500)]
cursor: Don't allow a DRAG action to start from a double-click
By moving the cursor slightly after the second press (but before
the second release) it was possible to accidentally trigger both a
DOUBLECLICK and a DRAG action. Doing this on the titlebar would
cause the window to maximize and then immediately unmaximize, which
feels very "glitchy".
As a simple fix, don't allow a press event that is triggering a
DOUBLECLICK to also trigger a DRAG (or CLICK) on the following
release event.
Note: Openbox avoids the issue by processing DOUBLECLICK on the
second release event. If the cursor moves before that, the DRAG
wins out and the DOUBLECLICK isn't processed.
Johan Malm [Fri, 7 Jan 2022 22:01:44 +0000 (22:01 +0000)]
view: adjust views safety following layout change
Refactor view_adjust_for_layout_change() in order to:
- Use view_maximize() - otherwise the unmaximized geometry remains off
the screen.
- Avoid relying on view_apply_maximized_geometry() to handle missing
output
Johan Malm [Fri, 7 Jan 2022 20:53:48 +0000 (20:53 +0000)]
view: fix bug in view_snap_to_edge()
Use view_move() and view_move_resize() correctly.
view_move_resize() should only be used when the view actually changes
width and/or height, otherwise the serials might cause a delay in moving
xdg-shell clients.
Johan Malm [Thu, 6 Jan 2022 21:40:10 +0000 (21:40 +0000)]
seat: support WLR_{WL,X11}_OUTPUTS >= 2
When running nested in X11 or a wlroots compositor with the respective
environment variables WLR_X11_OUTPUTS or WLR_WL_OUTPUTS set to value >= 2,
cursors need to be mapped to the respective outputs.
Johan Malm [Mon, 3 Jan 2022 23:32:02 +0000 (23:32 +0000)]
docs/autostart: remove wlr-randr {--off,--on}
swayidle previously used wlr-randr to enable/disable outputs, but since
commit a837fefc, this re-arranges views so is not to be used in the
context of idle system power management.