aboutsummaryrefslogtreecommitdiff
path: root/src/yuzu/main.cpp
diff options
context:
space:
mode:
authorAlexander Orzechowski <alex@ozal.ski>2022-12-13 13:17:19 -0500
committerAlexander Orzechowski <alex@ozal.ski>2022-12-13 13:23:35 -0500
commit45fcde817e0455b2e92ee86417688e53a6742b4b (patch)
tree11c1147413262099adbeac594566794d1ea077d2 /src/yuzu/main.cpp
parent29fbce9fe6007ca0d7aafebb47fe9c5edbfe9393 (diff)
wayland: Always use exclusive fullscreen
Wayland does not allow clients to choose their own size and position on the screen. The concept of fullscreening an application by sizing it to the screen and removing decorations does not exist. Use exclusive fullscreen instead.
Diffstat (limited to 'src/yuzu/main.cpp')
-rw-r--r--src/yuzu/main.cpp13
1 files changed, 9 insertions, 4 deletions
diff --git a/src/yuzu/main.cpp b/src/yuzu/main.cpp
index 6c204416fa..885e24990c 100644
--- a/src/yuzu/main.cpp
+++ b/src/yuzu/main.cpp
@@ -2915,9 +2915,14 @@ static QScreen* GuessCurrentScreen(QWidget* window) {
});
}
+bool GMainWindow::UsingExclusiveFullscreen() {
+ return Settings::values.fullscreen_mode.GetValue() == Settings::FullscreenMode::Exclusive ||
+ QGuiApplication::platformName() == QStringLiteral("wayland");
+}
+
void GMainWindow::ShowFullscreen() {
- const auto show_fullscreen = [](QWidget* window) {
- if (Settings::values.fullscreen_mode.GetValue() == Settings::FullscreenMode::Exclusive) {
+ const auto show_fullscreen = [this](QWidget* window) {
+ if (UsingExclusiveFullscreen()) {
window->showFullScreen();
return;
}
@@ -2945,7 +2950,7 @@ void GMainWindow::ShowFullscreen() {
void GMainWindow::HideFullscreen() {
if (ui->action_Single_Window_Mode->isChecked()) {
- if (Settings::values.fullscreen_mode.GetValue() == Settings::FullscreenMode::Exclusive) {
+ if (UsingExclusiveFullscreen()) {
showNormal();
restoreGeometry(UISettings::values.geometry);
} else {
@@ -2959,7 +2964,7 @@ void GMainWindow::HideFullscreen() {
statusBar()->setVisible(ui->action_Show_Status_Bar->isChecked());
ui->menubar->show();
} else {
- if (Settings::values.fullscreen_mode.GetValue() == Settings::FullscreenMode::Exclusive) {
+ if (UsingExclusiveFullscreen()) {
render_window->showNormal();
render_window->restoreGeometry(UISettings::values.renderwindow_geometry);
} else {