-
- Downloads
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.
Showing
- common/Makefile.am 2 additions, 1 deletioncommon/Makefile.am
- common/meson.build 1 addition, 0 deletionscommon/meson.build
- common/xfdesktop-common.c 216 additions, 1 deletioncommon/xfdesktop-common.c
- common/xfdesktop-common.h 60 additions, 0 deletionscommon/xfdesktop-common.h
- common/xfdesktop-marshal.list 1 addition, 0 deletionscommon/xfdesktop-marshal.list
- configure.ac 1 addition, 1 deletionconfigure.ac
- meson.build 1 addition, 1 deletionmeson.build
- po/POTFILES.in 0 additions, 1 deletionpo/POTFILES.in
- settings/main.c 0 additions, 2 deletionssettings/main.c
- src/Makefile.am 8 additions, 30 deletionssrc/Makefile.am
- src/menu.h 1 addition, 2 deletionssrc/menu.h
- src/meson.build 3 additions, 11 deletionssrc/meson.build
- src/windowlist.h 1 addition, 2 deletionssrc/windowlist.h
- src/xfce-backdrop.c 0 additions, 2116 deletionssrc/xfce-backdrop.c
- src/xfce-backdrop.h 0 additions, 157 deletionssrc/xfce-backdrop.h
- src/xfce-desktop.c 313 additions, 852 deletionssrc/xfce-desktop.c
- src/xfce-desktop.h 10 additions, 43 deletionssrc/xfce-desktop.h
- src/xfce-workspace.c 0 additions, 826 deletionssrc/xfce-workspace.c
- src/xfce-workspace.h 0 additions, 83 deletionssrc/xfce-workspace.h
- src/xfdesktop-application.c 502 additions, 83 deletionssrc/xfdesktop-application.c
Loading
Please register or sign in to comment