diff options
Diffstat (limited to 'src/gui/kernel/qguiapplication.cpp')
-rw-r--r-- | src/gui/kernel/qguiapplication.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/gui/kernel/qguiapplication.cpp b/src/gui/kernel/qguiapplication.cpp index 960bc81a57..646c705148 100644 --- a/src/gui/kernel/qguiapplication.cpp +++ b/src/gui/kernel/qguiapplication.cpp @@ -2507,9 +2507,13 @@ void QGuiApplicationPrivate::processActivatedEvent(QWindowSystemInterfacePrivate void QGuiApplicationPrivate::processWindowStateChangedEvent(QWindowSystemInterfacePrivate::WindowStateChangedEvent *wse) { - if (QWindow *window = wse->window.data()) { + if (QWindow *window = wse->window.data()) { + QWindowPrivate *windowPrivate = qt_window_private(window); + const auto newEffectiveState = QWindowPrivate::effectiveState(windowPrivate->windowState); QWindowStateChangeEvent e(wse->oldState); - window->d_func()->windowState = wse->newState; + windowPrivate->windowState = wse->newState; + emit window->windowStateChanged(newEffectiveState); + windowPrivate->updateVisibility(); QGuiApplication::sendSpontaneousEvent(window, &e); } } |