diff --git a/src/Gui/Application.cpp b/src/Gui/Application.cpp index fd8a5fd4a7..db81ac6629 100644 --- a/src/Gui/Application.cpp +++ b/src/Gui/Application.cpp @@ -449,6 +449,13 @@ Application::Application(bool GUIenabled) PyModule_AddFunctions(module, Application::Methods); } Py::Module(module).setAttr(std::string("ActiveDocument"), Py::None()); + Py::Module(module).setAttr(std::string("HasQtBug_129596"), +#ifdef HAS_QTBUG_129596 + Py::True() +#else + Py::False() +#endif + ); UiLoaderPy::init_type(); Base::Interpreter().addType(UiLoaderPy::type_object(), module, "UiLoader"); diff --git a/src/Gui/Application.h b/src/Gui/Application.h index 74f5056e88..16e0f2d88f 100644 --- a/src/Gui/Application.h +++ b/src/Gui/Application.h @@ -30,6 +30,10 @@ #include +#if QT_VERSION >= QT_VERSION_CHECK(6,0,0) +# define HAS_QTBUG_129596 +#endif + class QCloseEvent; class SoNode; class NavlibInterface; diff --git a/src/Gui/MainWindow.cpp b/src/Gui/MainWindow.cpp index 9acf1dd151..594ec043e7 100644 --- a/src/Gui/MainWindow.cpp +++ b/src/Gui/MainWindow.cpp @@ -450,7 +450,9 @@ MainWindow::MainWindow(QWidget * parent, Qt::WindowFlags f) d->mdiArea->setVerticalScrollBarPolicy(Qt::ScrollBarAsNeeded); d->mdiArea->setHorizontalScrollBarPolicy(Qt::ScrollBarAsNeeded); d->mdiArea->setOption(QMdiArea::DontMaximizeSubWindowOnActivation, false); +#ifndef HAS_QTBUG_129596 d->mdiArea->setActivationOrder(QMdiArea::ActivationHistoryOrder); +#endif d->mdiArea->setBackground(QBrush(QColor(160,160,160))); setCentralWidget(d->mdiArea); diff --git a/src/Mod/Test/Document.py b/src/Mod/Test/Document.py index 8af975db84..a5132d468d 100644 --- a/src/Mod/Test/Document.py +++ b/src/Mod/Test/Document.py @@ -2092,7 +2092,7 @@ class DocumentObserverCases(unittest.TestCase): FreeCAD.closeDocument(self.Doc2.Name) self.assertEqual(self.Obs.signal.pop(), "DocDeleted") self.assertTrue(self.Obs.parameter.pop() is self.Doc2) - if FreeCAD.GuiUp: + if FreeCAD.GuiUp and not FreeCAD.Gui.HasQtBug_129596: # only has document activated signal when running in GUI mode self.assertEqual(self.Obs.signal.pop(), "DocActivated") self.assertTrue(self.Obs.parameter.pop() is self.Doc1)