summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/cocoa/qcocoawindow.mm
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/platforms/cocoa/qcocoawindow.mm')
-rw-r--r--src/plugins/platforms/cocoa/qcocoawindow.mm18
1 files changed, 6 insertions, 12 deletions
diff --git a/src/plugins/platforms/cocoa/qcocoawindow.mm b/src/plugins/platforms/cocoa/qcocoawindow.mm
index 859aa87cce..27e8e9a2c9 100644
--- a/src/plugins/platforms/cocoa/qcocoawindow.mm
+++ b/src/plugins/platforms/cocoa/qcocoawindow.mm
@@ -81,6 +81,7 @@ QCocoaWindow::QCocoaWindow(QWindow *tlw)
, m_windowAttributes(0)
, m_windowClass(0)
, m_glContext(0)
+ , m_inConstructor(true)
{
QCocoaAutoReleasePool pool;
@@ -97,7 +98,7 @@ QCocoaWindow::QCocoaWindow(QWindow *tlw)
// QCocoaWindow is deleted by Qt.
[m_nsWindow setReleasedWhenClosed : NO];
- m_contentView = [[QNSView alloc] initWithQWindow:tlw];
+ m_contentView = [[QNSView alloc] initWithQWindow:tlw platformWindow:this];
// ### Accept touch events by default.
// Beware that enabling touch events has a negative impact on the overall performance.
@@ -107,6 +108,7 @@ QCocoaWindow::QCocoaWindow(QWindow *tlw)
setGeometry(tlw->geometry());
[m_nsWindow setContentView:m_contentView];
+ m_inConstructor = false;
}
QCocoaWindow::~QCocoaWindow()
@@ -124,8 +126,6 @@ void QCocoaWindow::setGeometry(const QRect &rect)
QPlatformWindow::setGeometry(rect);
NSRect bounds = qt_mac_flipRect(rect, window());
-
- [[m_nsWindow contentView] setFrameSize:bounds.size];
[m_nsWindow setContentSize : bounds.size];
[m_nsWindow setFrameOrigin : bounds.origin];
}
@@ -232,23 +232,17 @@ void QCocoaWindow::windowDidMove()
{
NSRect rect = [[m_nsWindow contentView]frame];
NSRect windowRect = [m_nsWindow frame];
-
- QRect geo(windowRect.origin.x, qt_mac_flipYCoordinate(windowRect.origin.y + rect.size.height), rect.size.width, rect.size.height);
- setGeometry(geo);
- QWindowSystemInterface::handleSynchronousGeometryChange(window(), geo);
+ [[m_nsWindow contentView] setFrameSize:rect.size];
}
void QCocoaWindow::windowDidResize()
{
NSRect rect = [[m_nsWindow contentView]frame];
NSRect windowRect = [m_nsWindow frame];
-
- QRect geo(windowRect.origin.x, qt_mac_flipYCoordinate(windowRect.origin.y + rect.size.height), rect.size.width, rect.size.height);
- setGeometry(geo);
- QWindowSystemInterface::handleSynchronousGeometryChange(window(), geo);
+ // Call setFrameSize which will trigger a frameDidChangeNotificatio on QNSView.
+ [[m_nsWindow contentView] setFrameSize:rect.size];
}
-
void QCocoaWindow::windowWillClose()
{
QWindowSystemInterface::handleSynchronousCloseEvent(window());