From c78584c970e4723798f10a05b72759006b711a83 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Morten=20Johan=20S=C3=B8rvig?= Date: Fri, 8 Mar 2013 11:30:38 +0100 Subject: Make QPixmap::grabWindow work on retina displays. Scale by qt_mac_get_scalefactor. Change-Id: I94cd4e0b2f81f7a83f14ff018e772dad1da10284 Reviewed-by: Gabriel de Dietrich --- src/gui/image/qpixmap_mac.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/gui/image/qpixmap_mac.cpp b/src/gui/image/qpixmap_mac.cpp index 5923e24..83d6a60 100755 --- a/src/gui/image/qpixmap_mac.cpp +++ b/src/gui/image/qpixmap_mac.cpp @@ -890,9 +890,12 @@ static QPixmap qt_mac_grabScreenRect_10_6(const QRect &rect) const CGRect cgRect = CGRectMake(rect.x(), rect.y(), rect.width(), rect.height()); const CGDisplayErr err = CGGetDisplaysWithRect(cgRect, maxDisplays, displays, &displayCount); + extern CGFloat qt_mac_get_scalefactor(); + QRect scaledRect = QRect(rect.topLeft(), rect.size() * qt_mac_get_scalefactor()); + if (err && displayCount == 0) return QPixmap(); - QPixmap windowPixmap(rect.size()); + QPixmap windowPixmap(scaledRect.size()); for (uint i = 0; i < displayCount; ++i) { const CGRect bounds = CGDisplayBounds(displays[i]); // Translate to display-local coordinates -- cgit v0.12