diff --git a/src/utils/screengrabber.cpp b/src/utils/screengrabber.cpp index 0545d6ae..f0f25452 100644 --- a/src/utils/screengrabber.cpp +++ b/src/utils/screengrabber.cpp @@ -85,7 +85,9 @@ QPixmap ScreenGrabber::grabEntireDesktop(bool &ok) { geometry.width(), geometry.height()) ); - p.setDevicePixelRatio(QApplication::desktop()->devicePixelRatio()); + auto screenNumber = QApplication::desktop()->screenNumber(); + QScreen *screen = QApplication::screens()[screenNumber]; + p.setDevicePixelRatio(screen->devicePixelRatio()); return p; } diff --git a/src/widgets/capture/capturewidget.cpp b/src/widgets/capture/capturewidget.cpp index 37393cc1..8c00c9f0 100644 --- a/src/widgets/capture/capturewidget.cpp +++ b/src/widgets/capture/capturewidget.cpp @@ -453,7 +453,7 @@ void CaptureWidget::mouseReleaseEvent(QMouseEvent *e) { newGeometry.setBottom(top); } m_selection->setGeometry(newGeometry); - m_context.selection = newGeometry; + m_context.selection = extendedRect(&newGeometry); updateSizeIndicator(); m_buttonHandler->updatePosition(newGeometry); m_buttonHandler->show(); @@ -850,11 +850,14 @@ void CaptureWidget::redo() { QRect CaptureWidget::extendedSelection() const { if (!m_selection->isVisible()) return QRect(); - auto devicePixelRatio = m_context.screenshot.devicePixelRatio(); - - QRect const &r = m_selection->geometry(); - return QRect(r.left() * devicePixelRatio, - r.top() * devicePixelRatio, - r.width() * devicePixelRatio, - r.height() * devicePixelRatio); + QRect r = m_selection->geometry(); + return extendedRect(&r); +} + +QRect CaptureWidget::extendedRect(QRect *r) const { + auto devicePixelRatio = m_context.screenshot.devicePixelRatio(); + return QRect(r->left() * devicePixelRatio, + r->top() * devicePixelRatio, + r->width() * devicePixelRatio, + r->height() * devicePixelRatio); } diff --git a/src/widgets/capture/capturewidget.h b/src/widgets/capture/capturewidget.h index 06cc735e..97601d34 100644 --- a/src/widgets/capture/capturewidget.h +++ b/src/widgets/capture/capturewidget.h @@ -130,6 +130,7 @@ private: void makeChild(QWidget *w); QRect extendedSelection() const; + QRect extendedRect(QRect *r) const; QUndoStack m_undoStack; QPointer m_sizeIndButton;