D8627: [platforms/drm] Properly adjust cursor position on a rotated output

David Edmundson noreply at phabricator.kde.org
Thu Nov 2 17:32:52 UTC 2017


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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/plasma-devel/attachments/20171102/306fa46f/attachment.html>


More information about the Plasma-devel mailing list