From 2f2d5053599785fdc8db481682746066911033b4 Mon Sep 17 00:00:00 2001 From: wmayer Date: Thu, 14 Mar 2019 19:28:11 +0100 Subject: [PATCH] fixes 0003130: FreeCAD 0.17 Qt5 bugs with external display --- src/Mod/Sketcher/Gui/ViewProviderSketch.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp b/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp index e8105277a47c..6feabfa9452f 100644 --- a/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp +++ b/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp @@ -1195,11 +1195,17 @@ bool ViewProviderSketch::mouseMove(const SbVec2s &cursorPos, Gui::View3DInventor return true; } case STATUS_SKETCH_UseRubberBand: { + // Here we must use the device-pixel-ratio to compute the correct y coordinate (#0003130) +#if QT_VERSION >= 0x050000 + qreal dpr = viewer->getGLWidget()->devicePixelRatioF(); +#else + qreal dpr = 1; +#endif newCursorPos = cursorPos; rubberband->setCoords(prvCursorPos.getValue()[0], - viewer->getGLWidget()->height() - prvCursorPos.getValue()[1], + viewer->getGLWidget()->height()*dpr - prvCursorPos.getValue()[1], newCursorPos.getValue()[0], - viewer->getGLWidget()->height() - newCursorPos.getValue()[1]); + viewer->getGLWidget()->height()*dpr - newCursorPos.getValue()[1]); viewer->redraw(); return true; }