From 11de131053fb5a9777c0b30dd39d5c978aedb87e Mon Sep 17 00:00:00 2001 From: Tim Blechmann Date: Thu, 6 Aug 2015 09:44:25 +0200 Subject: platforms: cocoa - fix QCocoaWindow::bottomLeftClippedByNSWindowOffset MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit bottomLeftClippedByNSWindowOffset did not take multiple clippings into account. with this patch, we compute the offset via NSView-visibleRect. Change-Id: If4ec02eb983e30f7cc5a6a1cb73e8f5c28fe1551 Reviewed-by: Jørgen Lind --- src/plugins/platforms/cocoa/qcocoawindow.mm | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/plugins/platforms/cocoa/qcocoawindow.mm b/src/plugins/platforms/cocoa/qcocoawindow.mm index e1d09c0400..aba25160dc 100644 --- a/src/plugins/platforms/cocoa/qcocoawindow.mm +++ b/src/plugins/platforms/cocoa/qcocoawindow.mm @@ -1850,12 +1850,11 @@ QPoint QCocoaWindow::bottomLeftClippedByNSWindowOffset() const { if (!m_contentView) return QPoint(); - NSPoint origin = [m_contentView isFlipped] ? - NSMakePoint(0, [m_contentView frame].size.height) : - NSMakePoint(0, 0); - NSPoint windowPoint = [m_contentView convertPoint:origin toView:nil]; + const NSPoint origin = [m_contentView isFlipped] ? NSMakePoint(0, [m_contentView frame].size.height) + : NSMakePoint(0, 0); + const NSRect visibleRect = [m_contentView visibleRect]; - return QPoint(-std::min((int)windowPoint.x, 0), -std::min((int)windowPoint.y,0)); + return QPoint(visibleRect.origin.x, -visibleRect.origin.y + (origin.y - visibleRect.size.height)); } QMargins QCocoaWindow::frameMargins() const -- cgit v1.2.3