kwin/plugins/platforms/drm
Erik Kurzinger d9c79e3627 [platforms/drm] Fix software cursors with drm backend
Summary:
If hardware cursor support is not available when using the drm backend for
Wayland compositing, the software cursor texture will not be updated when the
cursor image changes, and it will still be drawn when no cursor image is set
(such as when running a full-screen game). Furthermore, the drmModeSetCursor
and drmModeMoveCursor functions will still be unnecessarily called when the
cursor is moved or hidden.

To correct this, SceneOpenGL should connect Platform::cursorChanged as opposed
to Cursor::cursorChanged to its texture update function, as only the former
will be emitted when the cursor is updated and the compositor should check if
the cursor is hidden and the software cursor image is not null before rendering
it. DrmBackend::moveCursor and DrmBackend::hideCursor should also return
immediately if using a software cursor.

Reviewers: #kwin, davidedmundson

Reviewed By: #kwin, davidedmundson

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D18376
2019-03-19 12:46:16 -07:00
..
CMakeLists.txt Build platform plugins in correct sub directory of build dir 2018-12-13 19:36:28 +01:00
drm.json SVN_SILENT made messages (.desktop file) - always resolve ours 2018-10-24 06:05:03 +02:00
drm_backend.cpp [platforms/drm] Fix software cursors with drm backend 2019-03-19 12:46:16 -07:00
drm_backend.h Overhaul doxygen comments 2019-02-12 19:29:33 +02:00
drm_buffer.cpp
drm_buffer.h
drm_buffer_gbm.cpp
drm_buffer_gbm.h GBM remote access support for KWin 2018-03-25 20:18:47 +03:00
drm_inputeventfilter.cpp Update seat's timestamp after waking up screen through double tap 2018-05-20 15:38:31 +02:00
drm_inputeventfilter.h
drm_object.cpp [platforms/drm] Use more ScopedDrmPointer 2019-02-10 20:26:02 +02:00
drm_object.h Fix minor EBN issues 2018-08-29 21:02:16 +03:00
drm_object_connector.cpp [platforms/drm] Use more ScopedDrmPointer 2019-02-10 20:26:02 +02:00
drm_object_connector.h
drm_object_crtc.cpp [platforms/drm] Use more ScopedDrmPointer 2019-02-10 20:26:02 +02:00
drm_object_crtc.h [colorcorrection] Set gamma through Output class 2018-08-31 11:58:21 +02:00
drm_object_plane.cpp [platforms/drm] Use more ScopedDrmPointer 2019-02-10 20:26:02 +02:00
drm_object_plane.h
drm_output.cpp [platforms/drm] Add DPI connector type 2019-03-19 18:05:15 +02:00
drm_output.h Move output refresh rate getter into AbstractOutput 2018-11-14 20:04:29 +01:00
drm_pointer.h
egl_gbm_backend.cpp Introduce generic Output class 2018-08-31 11:53:12 +02:00
egl_gbm_backend.h Overhaul doxygen comments 2019-02-12 19:29:33 +02:00
gbm_surface.cpp
gbm_surface.h
logging.cpp
logging.h
remoteaccess_manager.cpp Introduce generic Output class 2018-08-31 11:53:12 +02:00
remoteaccess_manager.h GBM remote access support for KWin 2018-03-25 20:18:47 +03:00
scene_qpainter_drm_backend.cpp Introduce generic Output class 2018-08-31 11:53:12 +02:00
scene_qpainter_drm_backend.h
screens_drm.cpp Move output refresh rate getter into AbstractOutput 2018-11-14 20:04:29 +01:00
screens_drm.h Move output refresh rate getter into AbstractOutput 2018-11-14 20:04:29 +01:00