gui, qt: brintToFront workaround for Wayland

This commit is contained in:
pablomartin4btc 2024-07-30 17:24:36 -03:00
parent d367a4e36f
commit 15aa7d0236

View file

@ -406,11 +406,17 @@ bool isObscured(QWidget *w)
void bringToFront(QWidget* w) void bringToFront(QWidget* w)
{ {
if (w) {
if (QGuiApplication::platformName() == "wayland") {
auto flags = w->windowFlags();
w->setWindowFlags(flags|Qt::WindowStaysOnTopHint);
w->show();
w->setWindowFlags(flags);
w->show();
} else {
#ifdef Q_OS_MACOS #ifdef Q_OS_MACOS
ForceActivation(); ForceActivation();
#endif #endif
if (w) {
// activateWindow() (sometimes) helps with keyboard focus on Windows // activateWindow() (sometimes) helps with keyboard focus on Windows
if (w->isMinimized()) { if (w->isMinimized()) {
w->showNormal(); w->showNormal();
@ -420,6 +426,7 @@ void bringToFront(QWidget* w)
w->activateWindow(); w->activateWindow();
w->raise(); w->raise();
} }
}
} }
void handleCloseWindowShortcut(QWidget* w) void handleCloseWindowShortcut(QWidget* w)