diff options
author | Morten Johan Sørvig <morten.sorvig@qt.io> | 2021-09-10 10:07:47 +0200 |
---|---|---|
committer | Morten Johan Sørvig <morten.sorvig@qt.io> | 2021-09-15 16:19:39 +0000 |
commit | 83419fb8a3bae3e05000d2a97560c51c66d8256b (patch) | |
tree | 5dc5a89b3188e3a9b2e329e3397ba9d9225a22a1 | |
parent | b020ec6ada150e165d1295827100e2f55ee1b079 (diff) |
macOS: convert mask region to native geometry
QWindow::mask() returns a region in device independent
geometry which can’t be used directly by the platform
plugin.
Pick-to: 6.2 5.15
Task-number: QTBUG-94770
Change-Id: I76279bc74cfabe315178327938f485f4447568be
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
-rw-r--r-- | src/plugins/platforms/cocoa/qnsview.mm | 1 | ||||
-rw-r--r-- | src/plugins/platforms/cocoa/qnsview_mouse.mm | 4 |
2 files changed, 3 insertions, 2 deletions
diff --git a/src/plugins/platforms/cocoa/qnsview.mm b/src/plugins/platforms/cocoa/qnsview.mm index 9103c774c0..453ef9a0cd 100644 --- a/src/plugins/platforms/cocoa/qnsview.mm +++ b/src/plugins/platforms/cocoa/qnsview.mm @@ -63,6 +63,7 @@ #include <private/qcoregraphics_p.h> #include <private/qwindow_p.h> #include <private/qpointingdevice_p.h> +#include <private/qhighdpiscaling_p.h> #include "qcocoabackingstore.h" #ifndef QT_NO_OPENGL #include "qcocoaglcontext.h" diff --git a/src/plugins/platforms/cocoa/qnsview_mouse.mm b/src/plugins/platforms/cocoa/qnsview_mouse.mm index f7081503b7..d70d87e40d 100644 --- a/src/plugins/platforms/cocoa/qnsview_mouse.mm +++ b/src/plugins/platforms/cocoa/qnsview_mouse.mm @@ -341,7 +341,7 @@ static const QPointingDevice *pointingDeviceFor(qint64 deviceID) Q_UNUSED(qtScreenPoint); // Maintain masked state for the button for use by MouseDragged and MouseUp. - QRegion mask = m_platformWindow->window()->mask(); + QRegion mask = QHighDpi::toNativeLocalPosition(m_platformWindow->window()->mask(), m_platformWindow->window()); const bool masked = !mask.isEmpty() && !mask.contains(qtWindowPoint.toPoint()); if (masked) m_acceptedMouseDowns &= ~button; @@ -410,7 +410,7 @@ static const QPointingDevice *pointingDeviceFor(qint64 deviceID) [self convertFromScreen:[self screenMousePoint:theEvent] toWindowPoint:&qtWindowPoint andScreenPoint:&qtScreenPoint]; Q_UNUSED(qtScreenPoint); - QRegion mask = m_platformWindow->window()->mask(); + QRegion mask = QHighDpi::toNativeLocalPosition(m_platformWindow->window()->mask(), m_platformWindow->window()); const bool masked = !mask.isEmpty() && !mask.contains(qtWindowPoint.toPoint()); // Maintain masked state for the button for use by MouseDragged and Up. if (masked) |