davidedmundson added inline comments.
INLINE COMMENTS
> drm_output.cpp:109
> + QMatrix4x4 matrix;
> + if (m_orientation == Qt::InvertedLandscapeOrientation) {
> + matrix.translate(pixelSize().width() /2, pixelSize().height() / 2);
> for all variants of scaled, rotated and differently positioned outputs.
"by all variants of rotated" do you mean just this one?
> drm_output.cpp:116
> + matrix.translate(-m_globalPos.x(), -m_globalPos.y());
> + const QPoint p = matrix.map(globalPos) -
> m_backend->softwareCursorHotspot();
> drmModeMoveCursor(m_backend->fd(), m_crtc->id(), p.x(), p.y());
I'm 95% sure you need to rotate your softwareCursorHotspot.
It's something hard to see, becuase you'll only be off by a few px.
The only reason I'm not scaling the offset is because we're not scaling the
contents of the cursor planet (which is arguably wrong), you are rotating it.
REPOSITORY
R108 KWin
REVISION DETAIL
https://phabricator.kde.org/D8627
To: graesslin, #kwin, #plasma
Cc: davidedmundson, plasma-devel, kwin, bwowk, ZrenBot, progwolff, lesliezhai,
ali-mohamed, hardening, jensreuterberg, abetts, sebas, apol, mart