diff --git a/src/plugins/coreplugin/mainwindow.cpp b/src/plugins/coreplugin/mainwindow.cpp index e10e9e17f61..50f3a79ee29 100644 --- a/src/plugins/coreplugin/mainwindow.cpp +++ b/src/plugins/coreplugin/mainwindow.cpp @@ -197,15 +197,27 @@ MainWindow::MainWindow() this, &MainWindow::openDroppedFiles); } -// Edit View 3D needs to know when the main windows's state or activation change +// Edit View 3D needs to know when the main window's state or activation change void MainWindow::changeEvent(QEvent *event) { if (event->type() == QEvent::WindowStateChange) { emit m_coreImpl->windowStateChanged(m_previousWindowStates, windowState()); m_previousWindowStates = windowState(); } else if (event->type() == QEvent::ActivationChange) { - auto lastChild = qobject_cast(children().last()); - bool hasPopup = lastChild && lastChild->isActiveWindow(); + // check the last 3 children for a possible active window + auto rIter = children().rbegin(); + bool hasPopup = false; + for (int i = 0; i < 3; ++i) { + if (rIter < children().rend()) { + auto child = qobject_cast(*(rIter++)); + if (child && child->isActiveWindow()) { + hasPopup = true; + break; + } + } else { + break; + } + } emit m_coreImpl->windowActivationChanged(isActiveWindow(), hasPopup); } } diff --git a/src/plugins/qmldesigner/components/itemlibrary/itemlibrarywidget.cpp b/src/plugins/qmldesigner/components/itemlibrary/itemlibrarywidget.cpp index a24cfc731e2..218c6c78f6a 100644 --- a/src/plugins/qmldesigner/components/itemlibrary/itemlibrarywidget.cpp +++ b/src/plugins/qmldesigner/components/itemlibrary/itemlibrarywidget.cpp @@ -195,7 +195,7 @@ ItemLibraryWidget::ItemLibraryWidget(QWidget *parent) : &QmlDesignerPlugin::instance()->viewManager().designerActionManager(); auto handle3DModel = [](const QStringList &fileNames, const QString &defaultDir) -> bool { - auto importDlg = new ItemLibraryAssetImportDialog(fileNames, defaultDir); + auto importDlg = new ItemLibraryAssetImportDialog(fileNames, defaultDir, Core::ICore::mainWindow()); importDlg->show(); return true; }; @@ -505,7 +505,7 @@ void ItemLibraryWidget::addResources() static QString lastDir; const QString currentDir = lastDir.isEmpty() ? document->fileName().parentDir().toString() : lastDir; - const auto fileNames = QFileDialog::getOpenFileNames(this, + const auto fileNames = QFileDialog::getOpenFileNames(Core::ICore::mainWindow(), tr("Add Resources"), currentDir, filters.join(";;"));