diff options
Diffstat (limited to 'src/gui/kernel/qwindowsysteminterface.cpp')
| -rw-r--r-- | src/gui/kernel/qwindowsysteminterface.cpp | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/gui/kernel/qwindowsysteminterface.cpp b/src/gui/kernel/qwindowsysteminterface.cpp index b273682b976..7ad4f57198b 100644 --- a/src/gui/kernel/qwindowsysteminterface.cpp +++ b/src/gui/kernel/qwindowsysteminterface.cpp @@ -241,11 +241,15 @@ QT_DEFINE_QPA_EVENT_HANDLER(void, handleWindowActivated, QWindow *window, Qt::Fo QWindowSystemInterfacePrivate::handleWindowSystemEvent<Delivery>(e); } -void QWindowSystemInterface::handleWindowStateChanged(QWindow *window, Qt::WindowState newState) +QT_DEFINE_QPA_EVENT_HANDLER(void, handleWindowStateChanged, QWindow *window, Qt::WindowState newState, int oldState) { + Q_ASSERT(window); + if (oldState < Qt::WindowNoState) + oldState = window->windowState(); + QWindowSystemInterfacePrivate::WindowStateChangedEvent *e = - new QWindowSystemInterfacePrivate::WindowStateChangedEvent(window, newState); - QWindowSystemInterfacePrivate::handleWindowSystemEvent(e); + new QWindowSystemInterfacePrivate::WindowStateChangedEvent(window, newState, Qt::WindowState(oldState)); + QWindowSystemInterfacePrivate::handleWindowSystemEvent<Delivery>(e); } void QWindowSystemInterface::handleWindowScreenChanged(QWindow *window, QScreen *screen) |
