diff --git a/src/qt/guiutil.cpp b/src/qt/guiutil.cpp index ee841ce626b..9c1f008c950 100644 --- a/src/qt/guiutil.cpp +++ b/src/qt/guiutil.cpp @@ -419,6 +419,8 @@ void bringToFront(QWidget* w) } w->activateWindow(); w->raise(); + + bringToFrontWorkaroundForWayland(w); } } @@ -1007,4 +1009,15 @@ void ShowModalDialogAsynchronously(QDialog* dialog) dialog->show(); } +void bringToFrontWorkaroundForWayland(QWidget* w) +{ + if (QGuiApplication::platformName() == "wayland") { + auto eFlags = w->windowFlags(); + w->setWindowFlags(eFlags|Qt::WindowStaysOnTopHint); + w->show(); + w->setWindowFlags(eFlags); + w->show(); + } +} + } // namespace GUIUtil diff --git a/src/qt/guiutil.h b/src/qt/guiutil.h index 3e28e545574..75f0fa98ad4 100644 --- a/src/qt/guiutil.h +++ b/src/qt/guiutil.h @@ -170,6 +170,7 @@ namespace GUIUtil // Activate, show and raise the widget void bringToFront(QWidget* w); + void bringToFrontWorkaroundForWayland(QWidget* w); // Set shortcut to close window void handleCloseWindowShortcut(QWidget* w);