Skip to content
Snippets Groups Projects
Commit edb653c3 authored by Brian Tarricone's avatar Brian Tarricone
Browse files

Use a separate XfceDesktop widget/window per monitor

On Wayland, there is no standard way to place a single window/surface
that spans all monitors.  The layer-shell protocol, when not given a
wl_output, will place in a compositor-dependent manner, but always only
on a single monitor.

This refactors all of the backdrop handling code; turns out the "object
oriented" style doesn't really work with the new constraints, and was
already a bit awkward to deal with.  Now there's a Backdrop Manager
responsible for kicking off an async process to load/render a backdrop
when given a monitor and workspace, and cache the result.  The
loading/rendering code is now in its own file, as is the backdrop list
and cycling code.

In order to keep this commit as small as possible (though it's still
larger than I'd like), there's a big (intentional) regression here:
icons will only display on the first monitor, and if the first monitor
is not the primary monitor, and xfdesktop is set to only display on the
primary monitor, icons won't display at all.  All of this will be
addressed in future commits.

Additionally, on Wayland, there's no way to tell what monitor the
pointer is on, so running `xfdesktop --menu` or `xfdesktop --windowlist`
may display the menu on different monitor than the pointer is on and/or
on the correct monitor, but not under the pointer.  I expect that Xfce's
future compositor will have to have a private protocol that notifies
when the pointer moves between monitors, or something like that.
parent 0a5ab36d
No related branches found
No related tags found
Loading
Showing with 1120 additions and 4212 deletions
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment