graesslin created this revision. graesslin added reviewers: KWin, Plasma on Wayland. Restricted Application added subscribers: kwin, plasma-devel. Restricted Application added projects: Plasma on Wayland, KWin.
REVISION SUMMARY There are several effects (screenshot, zoom) which need access to the cursor image and cursor hotspot. So far these effects used X11 unconditionally to get the cursor which obviously does not work on Wayland. This change adds a new class PlatformCursorImage to kwinglobals which wraps what a cursor is (image and hotspot) and adds a new virtual method to Platform to provide such a PlatformCursorImage. By default it's the cursor image the Platform tracks. On X11/standalone platform this new virtual method is overriden and provides a PlatformCursorImage from X11 using the code previously used in screenshot effect. Screenshot effect and zoom are adjusted to use the new API instead of X11. TEST PLAN Zoom effect tested on Wayland, now gets the proper cursor icon. X11 functionality not yet tested. REPOSITORY rKWIN KWin BRANCH platform-cursor-image REVISION DETAIL https://phabricator.kde.org/D3093 AFFECTED FILES autotests/mock_effectshandler.h effects.cpp effects.h effects/screenshot/screenshot.cpp effects/zoom/zoom.cpp libkwineffects/CMakeLists.txt libkwineffects/kwineffects.h libkwineffects/kwinglobals.h platform.cpp platform.h plugins/platforms/x11/standalone/x11_platform.cpp plugins/platforms/x11/standalone/x11_platform.h EMAIL PREFERENCES https://phabricator.kde.org/settings/panel/emailpreferences/ To: graesslin, #kwin, #plasma_on_wayland Cc: plasma-devel, kwin, lesliezhai, ali-mohamed, hardening, jensreuterberg, abetts, sebas