Skip to content
  • Erik Kurzinger's avatar
    [platforms/drm] Fix software cursors with drm backend · d9c79e36
    Erik Kurzinger authored
    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
    d9c79e36