summaryrefslogtreecommitdiffstats
path: root/src/gui/kernel
diff options
context:
space:
mode:
authorAxel Spoerl <axel.spoerl@qt.io>2022-10-28 15:13:11 +0200
committerAxel Spoerl <axel.spoerl@qt.io>2022-10-29 14:06:24 +0000
commitb1df84b9d8758c7a59e722a5deb952cfa99a6dcb (patch)
tree7cda6209a5d914fe03d4054f0eabd19ead5db119 /src/gui/kernel
parent0b382080c2914e5129ede19c8ca9a871e7d3bf38 (diff)
Emit windowStateChanged in QGuiApplicationPrivate instead of QWindow
When the visual state of a QWindow changed, QGuiApplicationPrivate sent an event to QWindow, where the visibility was updated and the signal was emitted. Following the pricinple of other visual updates, these actions have been moved to QGuiApplicationPrivate. Task-number: QTBUG-102478 Change-Id: I94f2f5b7570580ce422ca9dc03013742f6a9baba Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Diffstat (limited to 'src/gui/kernel')
-rw-r--r--src/gui/kernel/qguiapplication.cpp8
-rw-r--r--src/gui/kernel/qwindow.cpp7
2 files changed, 6 insertions, 9 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);
}
}
diff --git a/src/gui/kernel/qwindow.cpp b/src/gui/kernel/qwindow.cpp
index 2d664f1117..d01ff11aa7 100644
--- a/src/gui/kernel/qwindow.cpp
+++ b/src/gui/kernel/qwindow.cpp
@@ -2501,13 +2501,6 @@ bool QWindow::event(QEvent *ev)
setIcon(icon());
break;
- case QEvent::WindowStateChange: {
- Q_D(QWindow);
- emit windowStateChanged(QWindowPrivate::effectiveState(d->windowState));
- d->updateVisibility();
- break;
- }
-
#if QT_CONFIG(tabletevent)
case QEvent::TabletPress:
case QEvent::TabletMove: