From baf2b1f9b2c533da4bf543833ef1905392fc8dab Mon Sep 17 00:00:00 2001 From: Andy Shaw Date: Mon, 22 Aug 2011 15:16:34 +0200 Subject: [PATCH] Fix problem with grabWindow on Mac OS X 10.6 with Cocoa For some reason the test did not fail locally but fails in the CI system. A manual check of the images from the test shows it should have failed. Reason for this will be investigated separately Reviewed-by: Sergio Ahumada (cherry picked from commit c5f46907fbc0354aacc4bc4a6f5ab97c8b656d1a) Change-Id: I15f09649bb37dd97401926eb5e52f33748e11ec0 Reviewed-on: http://codereview.qt-project.org/4668 Reviewed-by: Oswald Buddenhagen Reviewed-by: Qt Sanity Bot --- src/gui/image/qpixmap_mac.cpp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/gui/image/qpixmap_mac.cpp b/src/gui/image/qpixmap_mac.cpp index 5f5d14998b..47b6eef761 100644 --- a/src/gui/image/qpixmap_mac.cpp +++ b/src/gui/image/qpixmap_mac.cpp @@ -868,9 +868,8 @@ static QPixmap qt_mac_grabScreenRect_10_6(const QRect &rect) const CGRect bounds = CGDisplayBounds(displays[i]); // Translate to display-local coordinates QRect displayRect = rect.translated(qRound(-bounds.origin.x), qRound(-bounds.origin.y)); - // Adjust for inverted y axis. - displayRect.moveTop(qRound(bounds.size.height) - displayRect.y() - rect.height()); - QCFType image = CGDisplayCreateImageForRect(displays[i], bounds); + QCFType image = CGDisplayCreateImageForRect(displays[i], + CGRectMake(displayRect.x(), displayRect.y(), displayRect.width(), displayRect.height())); QPixmap pix = QPixmap::fromMacCGImageRef(image); QPainter painter(&windowPixmap); painter.drawPixmap(-bounds.origin.x, -bounds.origin.y, pix);