Skip to content

Commit 82c98a3

Browse files
UweUwe
authored andcommitted
Merge branch 'linux_modal_dialog_fix'
2 parents efd8856 + c11a496 commit 82c98a3

File tree

3 files changed

+19
-1
lines changed

3 files changed

+19
-1
lines changed

src/DockFocusController.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -264,7 +264,7 @@ void CDockFocusController::onFocusWindowChanged(QWindow *focusWindow)
264264
//===========================================================================
265265
void CDockFocusController::onApplicationFocusChanged(QWidget* focusedOld, QWidget* focusedNow)
266266
{
267-
Q_UNUSED(focusedOld);
267+
Q_UNUSED(focusedOld);
268268

269269
if (d->DockManager->isRestoringState())
270270
{

src/DockManager.cpp

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@
4545
#include <QSettings>
4646
#include <QMenu>
4747
#include <QApplication>
48+
#include <QWindow>
4849

4950
#include "FloatingDockContainer.h"
5051
#include "DockOverlay.h"
@@ -500,6 +501,16 @@ CDockManager::CDockManager(QWidget *parent) :
500501

501502
#ifdef Q_OS_LINUX
502503
window()->installEventFilter(this);
504+
505+
connect(qApp, &QApplication::focusWindowChanged, [](QWindow* focusWindow)
506+
{
507+
// bring modal dialogs to foreground to ensure that they are in front of any
508+
// floating dock widget
509+
if (focusWindow && focusWindow->isModal())
510+
{
511+
focusWindow->raise();
512+
}
513+
});
503514
#endif
504515
}
505516

src/FloatingDockContainer.cpp

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -515,6 +515,13 @@ void FloatingDockContainerPrivate::updateDropOverlays(const QPoint &GlobalPos)
515515
return;
516516
}
517517

518+
#ifdef Q_OS_LINUX
519+
if (qApp->activeModalWidget())
520+
{
521+
return;
522+
}
523+
#endif
524+
518525
auto Containers = DockManager->dockContainers();
519526
CDockContainerWidget *TopContainer = nullptr;
520527
for (auto ContainerWidget : Containers)

0 commit comments

Comments
 (0)