summaryrefslogtreecommitdiffstats
path: root/src/datavisualization/engine/abstract3drenderer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/datavisualization/engine/abstract3drenderer.cpp')
-rw-r--r--src/datavisualization/engine/abstract3drenderer.cpp11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/datavisualization/engine/abstract3drenderer.cpp b/src/datavisualization/engine/abstract3drenderer.cpp
index 06f13b5d..bafe6727 100644
--- a/src/datavisualization/engine/abstract3drenderer.cpp
+++ b/src/datavisualization/engine/abstract3drenderer.cpp
@@ -179,18 +179,21 @@ void Abstract3DRenderer::updateTheme(Q3DTheme *theme)
void Abstract3DRenderer::updateScene(Q3DScene *scene)
{
- updateInputPosition(scene->selectionQueryPosition());
+ float devicePixelRatio = scene->devicePixelRatio();
+ QPoint logicalPixelPosition = scene->selectionQueryPosition();
+ updateInputPosition(QPoint(logicalPixelPosition.x() * devicePixelRatio,
+ logicalPixelPosition.y() * devicePixelRatio));
- if (Q3DScene::invalidSelectionPoint() == scene->selectionQueryPosition()) {
+ if (Q3DScene::invalidSelectionPoint() == logicalPixelPosition) {
updateSelectionState(SelectNone);
} else {
// Selections are one-shot, reset selection active to false before processing
scene->setSelectionQueryPosition(Q3DScene::invalidSelectionPoint());
if (scene->isSlicingActive()) {
- if (scene->isPointInPrimarySubView(m_inputPosition))
+ if (scene->isPointInPrimarySubView(logicalPixelPosition))
updateSelectionState(SelectOnOverview);
- else if (scene->isPointInSecondarySubView(m_inputPosition))
+ else if (scene->isPointInSecondarySubView(logicalPixelPosition))
updateSelectionState(SelectOnSlice);
else
updateSelectionState(SelectNone);