platforms: cocoa - fix QCocoaWindow::bottomLeftClippedByNSWindowOffset

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 <jorgen.lind@theqtcompany.com>
bb10
Tim Blechmann 2015-08-06 09:44:25 +02:00
parent 462e537e03
commit 11de131053
1 changed files with 4 additions and 5 deletions

View File

@ -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