Implement support for virtual desktops on Wayland
Summary:
Includes, among other things:
- A refactoring towards supporting more than one desktop per window, for an eventual virtual desktops / activities merge
- A scheme for process-internal window ids on Wayland as DND payload so DND in and to the Pager works in the shell
- Implemented various previously missing behavior in WaylandTasksModel such as implicit moves of windows to the current desktop on various actions
- Expanded VirtualDesktopInfo API so the Pager can better abstract over windowing systems
- Implicit internal sharing of VirtualDesktopInfo since there are many more instances now
- Various cleanups
Still missing:
- Fixing the VirtualDesktops data role in the grouping proxy
- The protocol doesn't have desktop creation/destruction yet, so some of the related logic is still missing
- Some FIXME TODOs in the code when I was unhappy with the current KWayland API
This code is largely untested and subject to change.
Depends on D12820 and relates to T4457.
Reviewers: mart, mvourlakos, davidedmundson
Reviewed By: davidedmundson
Subscribers: alexde, anthonyfieroni, zzag, ngraham, abetts, plasma-devel
Tags: Plasma
Maniphest Tasks: T4457
Differential Revision: https://phabricator.kde.org/D13745