瀏覽代碼

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.
Alexander Orzechowski 3 年之前
父節點
當前提交
45fcde817e
共有 2 個文件被更改,包括 10 次插入4 次删除
  1. 9 4
      src/yuzu/main.cpp
  2. 1 0
      src/yuzu/main.h

+ 9 - 4
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 {

+ 1 - 0
src/yuzu/main.h

@@ -320,6 +320,7 @@ private slots:
     void OnDisplayTitleBars(bool);
     void InitializeHotkeys();
     void ToggleFullscreen();
+    bool UsingExclusiveFullscreen();
     void ShowFullscreen();
     void HideFullscreen();
     void ToggleWindowMode();