diff options
Diffstat (limited to 'src/widgets')
-rw-r--r-- | src/widgets/kernel/qwidget.cpp | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/src/widgets/kernel/qwidget.cpp b/src/widgets/kernel/qwidget.cpp index 66511b8d5b..423bb33cc2 100644 --- a/src/widgets/kernel/qwidget.cpp +++ b/src/widgets/kernel/qwidget.cpp @@ -8893,7 +8893,6 @@ bool QWidget::event(QEvent *event) case QEvent::ModifiedChange: case QEvent::MouseTrackingChange: case QEvent::ParentChange: - case QEvent::WindowStateChange: case QEvent::LocaleChange: case QEvent::MacSizeChange: case QEvent::ContentsRectChange: @@ -8902,6 +8901,21 @@ bool QWidget::event(QEvent *event) changeEvent(event); break; + case QEvent::WindowStateChange: { + const bool wasMinimized = static_cast<const QWindowStateChangeEvent *>(event)->oldState() & Qt::WindowMinimized; + if (wasMinimized != isMinimized()) { + if (wasMinimized) { + QShowEvent showEvent; + QCoreApplication::sendEvent(const_cast<QWidget *>(this), &showEvent); + } else { + QHideEvent hideEvent; + QCoreApplication::sendEvent(const_cast<QWidget *>(this), &hideEvent); + } + } + changeEvent(event); + } + break; + case QEvent::WindowActivate: case QEvent::WindowDeactivate: { if (isVisible() && !palette().isEqual(QPalette::Active, QPalette::Inactive)) |