diff --git a/src/plugins/platforms/cocoa/qnsview.mm b/src/plugins/platforms/cocoa/qnsview.mm
index 9cd075fdec648db7d0483629077a673171bfe3f7..4cb8fbb451d4c914962c2958df94769b665e3082 100644
--- a/src/plugins/platforms/cocoa/qnsview.mm
+++ b/src/plugins/platforms/cocoa/qnsview.mm
@@ -361,8 +361,12 @@ static NSString *_q_NSWindowDidChangeOcclusionStateNotification = nil;
     // Send a geometry change event to Qt, if it's ready to handle events
     if (!m_platformWindow->m_inConstructor) {
         QWindowSystemInterface::handleGeometryChange(m_window, geometry);
-        m_platformWindow->updateExposedGeometry();
-        QWindowSystemInterface::flushWindowSystemEvents();
+        // 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 (m_platformWindow->window()->isVisible()) {
+            m_platformWindow->updateExposedGeometry();
+            QWindowSystemInterface::flushWindowSystemEvents();
+        }
     }
 }