summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMike Krus <mike.krus@kdab.com>2016-12-13 14:57:51 +0000
committerJani Heikkinen <jani.heikkinen@qt.io>2016-12-14 11:18:00 +0000
commit718126df5a180346675601782b4a879a0a9b2b8a (patch)
treec44f7e1a79021522737b49ab144f7f905da5374a
parent629de0e31253d9c8b388f6f549aa3ad6abf3c630 (diff)
Fix hover support in QObjectPicker
Remove early termination test (looking to avoid doing picking on mouse move) as it breaks hover support. Need to more thorough test later Change-Id: Ia65803f921a63765d56d44620bdae2155ef0666e Task-number: QTBUG-57592 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
-rw-r--r--src/render/jobs/pickboundingvolumejob.cpp29
-rw-r--r--tests/auto/render/pickboundingvolumejob/tst_pickboundingvolumejob.cpp6
2 files changed, 6 insertions, 29 deletions
diff --git a/src/render/jobs/pickboundingvolumejob.cpp b/src/render/jobs/pickboundingvolumejob.cpp
index 7aa2be759..4a228681a 100644
--- a/src/render/jobs/pickboundingvolumejob.cpp
+++ b/src/render/jobs/pickboundingvolumejob.cpp
@@ -158,35 +158,6 @@ bool PickBoundingVolumeJob::runHelper()
if (vcaTriplets.empty())
return false;
- bool hasMoveEvent = false;
- bool hasOtherEvent = false;
-
- // Quickly look which types of events we've got
- for (const QMouseEvent &event : mouseEvents) {
- const bool isMove = (event.type() == QEvent::MouseMove);
- hasMoveEvent |= isMove;
- hasOtherEvent |= !isMove;
- }
-
- // In the case we have a move event, find if we actually have
- // an object picker that cares about these
- if (!hasOtherEvent) {
- // Retrieve the last used object picker
- ObjectPicker *lastCurrentPicker = m_manager->objectPickerManager()->data(m_currentPicker);
-
- // The only way to set lastCurrentPicker is to click
- // so we can return since if we're there it means we
- // have only move events
- if (lastCurrentPicker == nullptr)
- return false;
-
- const bool caresAboutMove = (hasMoveEvent && lastCurrentPicker->isDragEnabled());
- // Early return if the current object picker doesn't care about move events
- if (!caresAboutMove)
- return false;
- }
-
-
// TO DO:
// If we have move or hover move events that someone cares about, we try to avoid expensive computations
// by compressing them into a single one
diff --git a/tests/auto/render/pickboundingvolumejob/tst_pickboundingvolumejob.cpp b/tests/auto/render/pickboundingvolumejob/tst_pickboundingvolumejob.cpp
index f9e177971..11b60f3c2 100644
--- a/tests/auto/render/pickboundingvolumejob/tst_pickboundingvolumejob.cpp
+++ b/tests/auto/render/pickboundingvolumejob/tst_pickboundingvolumejob.cpp
@@ -436,6 +436,8 @@ private Q_SLOTS:
void checkEarlyReturnWhenMoveEventsAndNoCurrentPickers()
{
+ QSKIP("Disabled following removal of early return checks");
+
// GIVEN
QmlSceneReader sceneReader(QUrl("qrc:/testscene_dragenabled.qml"));
QScopedPointer<Qt3DCore::QNode> root(qobject_cast<Qt3DCore::QNode *>(sceneReader.root()));
@@ -485,11 +487,15 @@ private Q_SLOTS:
void checkEarlyReturnWhenMoveEventsAndDragDisabledPickers_data()
{
+ QSKIP("Disabled following removal of early return checks");
+
generateAllPickingSettingsCombinations();
}
void checkEarlyReturnWhenMoveEventsAndDragDisabledPickers()
{
+ QSKIP("Disabled following removal of early return checks");
+
// GIVEN
QmlSceneReader sceneReader(QUrl("qrc:/testscene_dragdisabled.qml"));
QScopedPointer<Qt3DCore::QNode> root(qobject_cast<Qt3DCore::QNode *>(sceneReader.root()));