Commit edb61593 authored by Aleix Pol Gonzalez's avatar Aleix Pol Gonzalez 🐧 Committed by Aleix Pol Gonzalez
Browse files

drm: we must not call showCursor when softwareCursor is on

Otherwise we'll show a dangling cursor but otherwise the cursor will be
updated by other code paths, so we end up with a weird cursor in the
middle of the screen that doesn't move.
parent 9225848f
...@@ -120,6 +120,11 @@ bool DrmOutput::showCursor(DrmDumbBuffer *c) ...@@ -120,6 +120,11 @@ bool DrmOutput::showCursor(DrmDumbBuffer *c)
bool DrmOutput::showCursor() bool DrmOutput::showCursor()
{ {
if (Q_UNLIKELY(m_backend->usesSoftwareCursor())) {
qCCritical(KWIN_DRM) << "DrmOutput::showCursor should never be called when software cursor is enabled";
return true;
}
const bool ret = showCursor(m_cursor[m_cursorIndex]); const bool ret = showCursor(m_cursor[m_cursorIndex]);
if (!ret) { if (!ret) {
return ret; return ret;
...@@ -710,7 +715,7 @@ void DrmOutput::updateTransform(Transform transform) ...@@ -710,7 +715,7 @@ void DrmOutput::updateTransform(Transform transform)
m_modesetRequested = true; m_modesetRequested = true;
// show cursor only if is enabled, i.e if pointer device is presentP // show cursor only if is enabled, i.e if pointer device is presentP
if (m_backend->isCursorEnabled()) { if (m_backend->isCursorEnabled() && !m_backend->usesSoftwareCursor()) {
// the cursor might need to get rotated // the cursor might need to get rotated
updateCursor(); updateCursor();
showCursor(); showCursor();
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment