diff --git a/src/plugins/platforms/winrt/qwinrtscreen.cpp b/src/plugins/platforms/winrt/qwinrtscreen.cpp
index a6424433860685fd77d8bc20f0b97b888dcfc91a..997aa0d86cf1f572773dd017d546ad8bb6602e2e 100644
--- a/src/plugins/platforms/winrt/qwinrtscreen.cpp
+++ b/src/plugins/platforms/winrt/qwinrtscreen.cpp
@@ -779,6 +779,7 @@ void QWinRTScreen::addWindow(QWindow *window)
     d->visibleWindows.prepend(window);
     QWindowSystemInterface::handleWindowActivated(window, Qt::OtherFocusReason);
     handleExpose();
+    QWindowSystemInterface::flushWindowSystemEvents();
 }
 
 void QWinRTScreen::removeWindow(QWindow *window)
@@ -796,6 +797,7 @@ void QWinRTScreen::removeWindow(QWindow *window)
     if (wasTopWindow)
         QWindowSystemInterface::handleWindowActivated(window, Qt::OtherFocusReason);
     handleExpose();
+    QWindowSystemInterface::flushWindowSystemEvents();
 }
 
 void QWinRTScreen::raise(QWindow *window)