diff --git a/tests/manual/windowflags/controllerwindow.cpp b/tests/manual/windowflags/controllerwindow.cpp index b3657a3..2d012be 100644 --- a/tests/manual/windowflags/controllerwindow.cpp +++ b/tests/manual/windowflags/controllerwindow.cpp @@ -47,6 +47,9 @@ #include #include #include +#include +#include +#include #include "controllerwindow.h" #include "controls.h" @@ -112,8 +115,19 @@ ControllerWindow::ControllerWindow() : previewWidget(0) bool ControllerWindow::eventFilter(QObject *o, QEvent *e) { - if (e->type() == QEvent::WindowStateChange) - updateStateControl(); + if (e->type() == QEvent::WindowStateChange) { + QWindowStateChangeEvent *wse = static_cast(e); + if (o->isWidgetType()) { + updateStateControl(); + qDebug() << "widget" << wse->oldState() << static_cast(o)->windowState(); + } else if (o->isWindowType()) { + const Qt::WindowStates oldS = wse->oldState(); + const Qt::WindowState newS = static_cast(o)->windowState(); + if (oldS == Qt::WindowMaximized && newS == Qt::WindowNoState) + qDebug() << "Max->Normal"; + qDebug() << "window" << wse->oldState() << static_cast(o)->windowState(); + } + } return false; } @@ -162,6 +176,13 @@ void ControllerWindow::updatePreview() previewWidget->setWindowState(statesControl->states()); previewWidget->setVisible(statesControl->visibleValue()); + static bool hasFilterOnWindow = false; + if (previewWidget->isVisible() && !hasFilterOnWindow) { + if (QWindow *w = previewWidget->windowHandle()) { + w->installEventFilter(this); + hasFilterOnWindow = true; + } + } } void ControllerWindow::createTypeGroupBox() diff --git a/tests/manual/windowflags/windowflags.pro b/tests/manual/windowflags/windowflags.pro index 546264c..97db359 100644 --- a/tests/manual/windowflags/windowflags.pro +++ b/tests/manual/windowflags/windowflags.pro @@ -9,3 +9,4 @@ SOURCES = controllerwindow.cpp \ greaterThan(QT_MAJOR_VERSION, 4): QT += widgets DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0 +CONFIG+=console