diff options
| -rw-r--r-- | src/yuzu/main.cpp | 14 |
1 files changed, 1 insertions, 13 deletions
diff --git a/src/yuzu/main.cpp b/src/yuzu/main.cpp index 62dfc526a..c278d8dab 100644 --- a/src/yuzu/main.cpp +++ b/src/yuzu/main.cpp | |||
| @@ -3167,20 +3167,8 @@ void GMainWindow::ShowFullscreen() { | |||
| 3167 | window->hide(); | 3167 | window->hide(); |
| 3168 | window->setWindowFlags(window->windowFlags() | Qt::FramelessWindowHint); | 3168 | window->setWindowFlags(window->windowFlags() | Qt::FramelessWindowHint); |
| 3169 | const auto screen_geometry = GuessCurrentScreen(window)->geometry(); | 3169 | const auto screen_geometry = GuessCurrentScreen(window)->geometry(); |
| 3170 | // NB: On Windows, a borderless window will be treated the same as exclusive fullscreen | ||
| 3171 | // when the window geometry matches the physical dimensions of the screen. | ||
| 3172 | // However, with High DPI scaling, when the devicePixelRatioF() is > 1, the borderless | ||
| 3173 | // window apparently is not treated as exclusive fullscreen and functions correctly. | ||
| 3174 | // One can verify and replicate this behavior by using a high resolution (4K) display, | ||
| 3175 | // and switching between 100% and 200% scaling in Windows' display settings. | ||
| 3176 | // At 100%, without the addition of 1, it is treated as exclusive fullscreen. | ||
| 3177 | // At 200%, with or without the addition of 1, it is treated as borderless windowed. | ||
| 3178 | // Therefore, we can use (read: abuse) this difference in behavior to fix this issue for | ||
| 3179 | // those with higher resolution displays when the Qt scaling ratio is > 1. | ||
| 3180 | // Should this behavior be changed in the future, please revisit this workaround. | ||
| 3181 | const bool must_add_one = devicePixelRatioF() == 1.0f; | ||
| 3182 | window->setGeometry(screen_geometry.x(), screen_geometry.y(), screen_geometry.width(), | 3170 | window->setGeometry(screen_geometry.x(), screen_geometry.y(), screen_geometry.width(), |
| 3183 | screen_geometry.height() + (must_add_one ? 1 : 0)); | 3171 | screen_geometry.height() + 1); |
| 3184 | window->raise(); | 3172 | window->raise(); |
| 3185 | window->showNormal(); | 3173 | window->showNormal(); |
| 3186 | }; | 3174 | }; |