summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTor Arne Vestbø <tor.arne.vestbo@digia.com>2013-05-08 14:34:43 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-05-15 05:06:15 +0200
commit3c69751ef237f4ee45623e6d28ddf5b8a19d2b3e (patch)
treeadf76b033c38774c192e243142b6ad2d858cf395
parent69c05bbef47fb9d30d70e594bd5942add8b135fe (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>
-rw-r--r--src/plugins/platforms/cocoa/qcocoawindow.mm3
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())];
}