diff options
-rw-r--r-- | src/quick/items/qquickitem.cpp | 4 | ||||
-rw-r--r-- | tests/auto/quick/qquickwindow/tst_qquickwindow.cpp | 12 |
2 files changed, 9 insertions, 7 deletions
diff --git a/src/quick/items/qquickitem.cpp b/src/quick/items/qquickitem.cpp index 5863c52e70..547b795cd8 100644 --- a/src/quick/items/qquickitem.cpp +++ b/src/quick/items/qquickitem.cpp @@ -2565,8 +2565,10 @@ void QQuickItemPrivate::derefWindow() if (c->mouseGrabberItem == q) c->mouseGrabberItem = 0; #ifndef QT_NO_CURSOR - if (c->cursorItem == q) + if (c->cursorItem == q) { c->cursorItem = 0; + window->unsetCursor(); + } #endif c->hoverItems.removeAll(q); if (itemNodeInstance) diff --git a/tests/auto/quick/qquickwindow/tst_qquickwindow.cpp b/tests/auto/quick/qquickwindow/tst_qquickwindow.cpp index 4a61746344..17999ed588 100644 --- a/tests/auto/quick/qquickwindow/tst_qquickwindow.cpp +++ b/tests/auto/quick/qquickwindow/tst_qquickwindow.cpp @@ -1294,23 +1294,23 @@ void tst_qquickwindow::cursor() QTest::mouseRelease(&window, Qt::LeftButton, 0, QPoint(100, 100)); // Remove the cursor item from the scene. Theoretically this should make parentItem the - // cursorItem, but given the situation will correct itself after the next mouse move it's - // probably better left as is to avoid unnecessary work during tear down. + // cursorItem, but given the situation will correct itself after the next mouse move it + // simply unsets the window cursor for now. childItem.setParentItem(0); - QCOMPARE(window.cursor().shape(), Qt::WaitCursor); + QCOMPARE(window.cursor().shape(), Qt::ArrowCursor); parentItem.setCursor(Qt::SizeAllCursor); QCOMPARE(parentItem.cursor().shape(), Qt::SizeAllCursor); - QCOMPARE(window.cursor().shape(), Qt::WaitCursor); + QCOMPARE(window.cursor().shape(), Qt::ArrowCursor); // Changing the cursor of an un-parented item doesn't affect the window's cursor. childItem.setCursor(Qt::ClosedHandCursor); QCOMPARE(childItem.cursor().shape(), Qt::ClosedHandCursor); - QCOMPARE(window.cursor().shape(), Qt::WaitCursor); + QCOMPARE(window.cursor().shape(), Qt::ArrowCursor); childItem.unsetCursor(); QCOMPARE(childItem.cursor().shape(), Qt::ArrowCursor); - QCOMPARE(window.cursor().shape(), Qt::WaitCursor); + QCOMPARE(window.cursor().shape(), Qt::ArrowCursor); QTest::mouseRelease(&window, Qt::LeftButton, 0, QPoint(100, 101)); QCOMPARE(window.cursor().shape(), Qt::SizeAllCursor); |