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

Cannot updateCursor above the mouseArea

    XMLWordPrintable

Details

    Description

      I tried to change the cursor using the updateCursor(QQuickWindowPrivate::updateCursor).

      void QQuickWindowPrivate::updateCursor(const QPointF &scenePos)
      {
          Q_Q(QQuickWindow);
      
          QQuickItem *oldCursorItem = cursorItem;
          cursorItem = findCursorItem(contentItem, scenePos);
      
          if (cursorItem != oldCursorItem) {
              QWindow *renderWindow = QQuickRenderControl::renderWindowFor(q);
              QWindow *window = renderWindow ? renderWindow : q;
              if (cursorItem)
                  window->setCursor(cursorItem->cursor());
              else
                  window->unsetCursor();
          }
      }
      

      But If I have a mouseArea, always return mouseArea from findCursorItem.
      mouseArea is invisible item, but visible property is true(default).

      QQuickItem *QQuickWindowPrivate::findCursorItem(QQuickItem *item, const QPointF &scenePos)
      {
      ...
          if (itemPrivate->subtreeCursorEnabled) {
              QList<QQuickItem *> children = itemPrivate->paintOrderChildItems();
              for (int ii = children.count() - 1; ii >= 0; --ii) {
                  QQuickItem *child = children.at(ii);
                  if (!child->isVisible() || !child->isEnabled() || QQuickItemPrivate::get(child)->culled)
                      continue;
                  if (QQuickItem *cursorItem = findCursorItem(child, scenePos))
                      return cursorItem;
              }
          }
      

      In my opinion, should handle the mouseArea exception case.
      Also enabled value are specific to the mouseArea.

      See https://codereview.qt-project.org/#/c/175480/

      Attachments

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          People

            srutledg Shawn Rutledge
            aram.so Aram So
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:

              Gerrit Reviews

                There are no open Gerrit changes