diff options
-rw-r--r-- | src/render/jobs/pickboundingvolumejob.cpp | 9 | ||||
-rw-r--r-- | tests/auto/render/pickboundingvolumejob/tst_pickboundingvolumejob.cpp | 8 |
2 files changed, 8 insertions, 9 deletions
diff --git a/src/render/jobs/pickboundingvolumejob.cpp b/src/render/jobs/pickboundingvolumejob.cpp index edc847bc4..7bd45587c 100644 --- a/src/render/jobs/pickboundingvolumejob.cpp +++ b/src/render/jobs/pickboundingvolumejob.cpp @@ -362,13 +362,12 @@ void PickBoundingVolumeJob::dispatchPickEvents(const QMouseEvent &event, } case QEvent::MouseButtonRelease: { - if (lastCurrentPicker != nullptr && m_currentPicker == objectPickerHandle) - m_currentPicker = HObjectPicker(); // Only send the release event if it was pressed - if (objectPicker->isPressed()) { - if (lastCurrentPicker == objectPicker) - objectPicker->onClicked(pickEvent); + if (objectPicker->isPressed()) objectPicker->onReleased(pickEvent); + if (lastCurrentPicker != nullptr && m_currentPicker == objectPickerHandle) { + objectPicker->onClicked(pickEvent); + m_currentPicker = HObjectPicker(); } break; } diff --git a/tests/auto/render/pickboundingvolumejob/tst_pickboundingvolumejob.cpp b/tests/auto/render/pickboundingvolumejob/tst_pickboundingvolumejob.cpp index 5ebf10338..07055d810 100644 --- a/tests/auto/render/pickboundingvolumejob/tst_pickboundingvolumejob.cpp +++ b/tests/auto/render/pickboundingvolumejob/tst_pickboundingvolumejob.cpp @@ -809,13 +809,13 @@ private Q_SLOTS: QVERIFY(!backendPicker1->isPressed()); QCOMPARE(arbiter.events.count(), 2); change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "clicked"); + QCOMPARE(change->propertyName(), "released"); pickEvent = change->value().value<Qt3DRender::QPickEventPtr>(); QVERIFY(pickEvent); if (pickMethod == Qt3DRender::QPickingSettings::TrianglePicking) QVERIFY(pickEvent.dynamicCast<Qt3DRender::QPickTriangleEvent>()); change = arbiter.events.last().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "released"); + QCOMPARE(change->propertyName(), "clicked"); pickEvent = change->value().value<Qt3DRender::QPickEventPtr>(); QVERIFY(pickEvent); if (pickMethod == Qt3DRender::QPickingSettings::TrianglePicking) @@ -1034,9 +1034,9 @@ private Q_SLOTS: QVERIFY(!backendPicker->isPressed()); QCOMPARE(arbiter.events.count(), 2); change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "clicked"); - change = arbiter.events.last().staticCast<Qt3DCore::QPropertyUpdatedChange>(); QCOMPARE(change->propertyName(), "released"); + change = arbiter.events.last().staticCast<Qt3DCore::QPropertyUpdatedChange>(); + QCOMPARE(change->propertyName(), "clicked"); arbiter.events.clear(); |