summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/cocoa/qcocoawindow.mm
diff options
context:
space:
mode:
authorOswald Buddenhagen <oswald.buddenhagen@digia.com>2014-11-10 11:42:02 +0100
committerOswald Buddenhagen <oswald.buddenhagen@digia.com>2014-11-10 11:45:49 +0100
commit0d02a06517f29c5b51fb2d3ac64a5e6d9daed5a9 (patch)
tree3426504f004cbd2fffaceec24678bb16e9abfe37 /src/plugins/platforms/cocoa/qcocoawindow.mm
parentd7a5dc0cfdae2fb22b7061301575f04f2bcc3f1c (diff)
parentba73bde66efa588a74eaaa946e80e9de2b9e2d59 (diff)
Merge remote-tracking branch 'origin/5.4' into 5.4.0
Diffstat (limited to 'src/plugins/platforms/cocoa/qcocoawindow.mm')
-rw-r--r--src/plugins/platforms/cocoa/qcocoawindow.mm8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/plugins/platforms/cocoa/qcocoawindow.mm b/src/plugins/platforms/cocoa/qcocoawindow.mm
index f536e20b39..6656212457 100644
--- a/src/plugins/platforms/cocoa/qcocoawindow.mm
+++ b/src/plugins/platforms/cocoa/qcocoawindow.mm
@@ -381,6 +381,7 @@ QCocoaWindow::QCocoaWindow(QWindow *tlw)
, m_windowUnderMouse(false)
, m_inConstructor(true)
, m_inSetVisible(false)
+ , m_inSetGeometry(false)
#ifndef QT_NO_OPENGL
, m_glContext(0)
#endif
@@ -470,6 +471,8 @@ QSurfaceFormat QCocoaWindow::format() const
void QCocoaWindow::setGeometry(const QRect &rectIn)
{
+ QBoolBlocker inSetGeometry(m_inSetGeometry, true);
+
QRect rect = rectIn;
// This means it is a call from QWindow::setFramePosition() and
// the coordinates include the frame (size is still the contents rectangle).
@@ -1754,6 +1757,11 @@ void QCocoaWindow::updateExposedGeometry()
if (!m_geometryUpdateExposeAllowed)
return;
+ // Do not send incorrect exposes in case the window is not even visible yet.
+ // We might get here as a result of a resize() from QWidget's show(), for instance.
+ if (!window()->isVisible())
+ return;
+
if (!isWindowExposable())
return;