From 8dc2f81c9f0e6eb8cab09e5d682358fd140b49b8 Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Thu, 4 Aug 2011 10:36:48 +0200 Subject: Add WindowStateChanged event. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Not currently considering activation state. Change-Id: Iea9265d35536947b6cc85639bd9839e9fda69bdf Reviewed-on: http://codereview.qt.nokia.com/2609 Reviewed-by: Qt Sanity Bot Reviewed-by: Samuel Rødal --- src/widgets/kernel/qwidgetwindow_qpa.cpp | 14 ++++++++++++++ src/widgets/kernel/qwidgetwindow_qpa_p.h | 1 + 2 files changed, 15 insertions(+) (limited to 'src/widgets/kernel') diff --git a/src/widgets/kernel/qwidgetwindow_qpa.cpp b/src/widgets/kernel/qwidgetwindow_qpa.cpp index 24e76f05d6..ab8bacc1c7 100644 --- a/src/widgets/kernel/qwidgetwindow_qpa.cpp +++ b/src/widgets/kernel/qwidgetwindow_qpa.cpp @@ -114,6 +114,10 @@ bool QWidgetWindow::event(QEvent *event) handleExposeEvent(static_cast(event)); return true; + case QEvent::WindowStateChange: + handleWindowStateChangedEvent(static_cast(event)); + return true; + default: break; } @@ -385,4 +389,14 @@ void QWidgetWindow::handleExposeEvent(QExposeEvent *event) m_widget->d_func()->syncBackingStore(event->region()); } +void QWidgetWindow::handleWindowStateChangedEvent(QWindowStateChangeEvent *event) +{ + // QWindow does currently not know 'active'. + Qt::WindowStates eventState = event->oldState(); + if (m_widget->windowState() & Qt::WindowActive) + eventState |= Qt::WindowActive; + QWindowStateChangeEvent widgetEvent(eventState); + QGuiApplication::sendSpontaneousEvent(m_widget, &widgetEvent); +} + QT_END_NAMESPACE diff --git a/src/widgets/kernel/qwidgetwindow_qpa_p.h b/src/widgets/kernel/qwidgetwindow_qpa_p.h index f200839b0b..4253072933 100644 --- a/src/widgets/kernel/qwidgetwindow_qpa_p.h +++ b/src/widgets/kernel/qwidgetwindow_qpa_p.h @@ -76,6 +76,7 @@ protected: void handleWheelEvent(QWheelEvent *); void handleDragEvent(QEvent *); void handleExposeEvent(QExposeEvent *); + void handleWindowStateChangedEvent(QWindowStateChangeEvent *event); private: void updateGeometry(); -- cgit v1.2.3