aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/quick/items/qquickitem.cpp4
-rw-r--r--tests/auto/quick/qquickwindow/tst_qquickwindow.cpp12
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);