diff --git a/src/citron/updater/updater_dialog.cpp b/src/citron/updater/updater_dialog.cpp index 60218add3..664f9bdca 100644 --- a/src/citron/updater/updater_dialog.cpp +++ b/src/citron/updater/updater_dialog.cpp @@ -220,9 +220,16 @@ void UpdaterDialog::OnRestartButtonClicked() { } void UpdaterDialog::SetupUI() { - setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint); + const bool is_gamescope = !qgetenv("GAMESCOPE_WIDTH").isEmpty() || qgetenv("XDG_CURRENT_DESKTOP") == "gamescope"; - setMinimumSize(size()); + if (is_gamescope) { + // Force as a top-level window so Gamescope centers it correctly at 800p + setWindowFlags(Qt::Window | Qt::CustomizeWindowHint | Qt::WindowTitleHint | Qt::WindowStaysOnTopHint); + // Do NOT set a minimum size based on desktop hints, let the layout work + } else { + setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint); + setMinimumSize(size()); + } ui->currentVersionValue->setText(QString::fromStdString(updater_service->GetCurrentVersion())); ui->appImageSelectorLabel->setVisible(false);