Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-83120

QQuickWindowPrivate::updateCursor() does not change the cursor if cursorItem does not change

    XMLWordPrintable

Details

    • Bug
    • Resolution: Invalid
    • P2: Important
    • 5.12, 5.15
    • 5.12.7, 5.15
    • Quick: SceneGraph
    • None

    Description

      In a Qt Quick Wayland compositor (one that does not use WaylandCursorItem though): Suppose the mouse enters a surface item(a descendant of QQuickItem) which represents a wayland surface. Then it becomes cursorItem when QQuickWindowPrivate::updateCursor() is called. In webOS QQuickWindowPrivate::updateCursor() can be called again by the wayland client. In this case updateCursor doesn't change the cursor because the item returned by findCursorItemAndHandler() is the same with cursorItem. Setting cursorItem to null triggers setCursor on the second call and gets the result expected.

      So it is suggested to add QQuickWindow::invalidateCursorItem that clears cursorItem of QQuickWindowPrivate. It results in the next updateCursor call to take effect even if a mouse move event is delivered to the same item.

      https://codereview.qt-project.org/c/qt/qtdeclarative/+/288656
       

      Attachments

        For Gerrit Dashboard: QTBUG-83120
        # Subject Branch Project Status CR V

        Activity

          People

            jaeyoon.jung Jaeyoon Jung
            hollis Hollis Kim (Inactive)
            Pasi Keränen Pasi Keränen
            Volker Hilsheimer Volker Hilsheimer
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes