diff options
author | Tor Arne Vestbø <tor.arne.vestbo@digia.com> | 2013-05-08 14:34:43 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-05-15 05:06:15 +0200 |
commit | 3c69751ef237f4ee45623e6d28ddf5b8a19d2b3e (patch) | |
tree | adf76b033c38774c192e243142b6ad2d858cf395 /src/plugins/platforms | |
parent | 69c05bbef47fb9d30d70e594bd5942add8b135fe (diff) |
Prevent windows from jumping when changing geometry on OS X
We were setting the frame origin and content size as two separate steps.
The frame origin was asynchronous, while the content size was synchronous.
This resulted in the window visually jumping/moving, instead of applying
the new geometry in one single step.
We now set both in one go using setFrame, by manually calculating the
frameRectForContentRect. This makes the whole process asynchronous.
Task-number: QTBUG-31039
Change-Id: Iaba46106b9f200c707507f330fa801c99e2e7d89
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Diffstat (limited to 'src/plugins/platforms')
-rw-r--r-- | src/plugins/platforms/cocoa/qcocoawindow.mm | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/src/plugins/platforms/cocoa/qcocoawindow.mm b/src/plugins/platforms/cocoa/qcocoawindow.mm index ac30338c39..d4aa32b821 100644 --- a/src/plugins/platforms/cocoa/qcocoawindow.mm +++ b/src/plugins/platforms/cocoa/qcocoawindow.mm @@ -272,8 +272,7 @@ void QCocoaWindow::setCocoaGeometry(const QRect &rect) if (m_nsWindow) { NSRect bounds = qt_mac_flipRect(rect, window()); - [m_nsWindow setContentSize : bounds.size]; - [m_nsWindow setFrameOrigin : bounds.origin]; + [m_nsWindow setFrame:[m_nsWindow frameRectForContentRect:bounds] display:YES animate:NO]; } else { [m_contentView setFrame : NSMakeRect(rect.x(), rect.y(), rect.width(), rect.height())]; } |