From e319beff628ca0cc0bffef4512d6dd205bf984ac Mon Sep 17 00:00:00 2001 From: borgmanJeremy <46930769+borgmanJeremy@users.noreply.github.com> Date: Sat, 2 Jul 2022 13:06:41 -0500 Subject: [PATCH] Fix magnify windows (#2746) * Fixed issue with magnifier on windows where screen numbers were not monotonically increasing * clang format * fixed dos line endings * remove qt debug --- src/widgets/capture/magnifierwidget.cpp | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/src/widgets/capture/magnifierwidget.cpp b/src/widgets/capture/magnifierwidget.cpp index 7a6d876d..eec63483 100644 --- a/src/widgets/capture/magnifierwidget.cpp +++ b/src/widgets/capture/magnifierwidget.cpp @@ -44,8 +44,11 @@ void MagnifierWidget::paintEvent(QPaintEvent*) void MagnifierWidget::drawMagnifierCircle(QPainter& painter) { - int x = QCursor::pos().x() + m_magPixels; - int y = QCursor::pos().y() + m_magPixels; + auto relativeCursor = QCursor::pos(); + auto translated = QWidget::mapFromGlobal(relativeCursor); + auto x = translated.x() + m_magPixels; + auto y = translated.y() + m_magPixels; + int magX = static_cast(x * m_devicePixelRatio - m_magPixels); int magY = static_cast(y * m_devicePixelRatio - m_magPixels); QRectF magniRect(magX, magY, m_pixels, m_pixels); @@ -103,8 +106,11 @@ void MagnifierWidget::drawMagnifierCircle(QPainter& painter) // https://invent.kde.org/graphics/spectacle/-/blob/master/src/QuickEditor/QuickEditor.cpp#L841 void MagnifierWidget::drawMagnifier(QPainter& painter) { - int x = QCursor::pos().x(); - int y = QCursor::pos().y(); + auto relativeCursor = QCursor::pos(); + auto translated = QWidget::mapFromGlobal(relativeCursor); + auto x = translated.x(); + auto y = translated.y(); + int magX = static_cast(x * m_devicePixelRatio - m_magPixels); int offsetX = 0; if (magX < 0) { @@ -170,4 +176,4 @@ void MagnifierWidget::drawMagnifier(QPainter& painter) { crossHairTop, crossHairRight, crossHairBottom, crossHairLeft }) { painter.fillRect(rect, m_color); } -} \ No newline at end of file +}