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

Reply via email to