From 98a1285696133cf4b9cffae28409a077e8a7f38e Mon Sep 17 00:00:00 2001 From: "Herman S." <429230+has207@users.noreply.github.com> Date: Sat, 20 Dec 2025 21:03:16 +0900 Subject: [PATCH] [UI] Ensure app starts on the same screen as cursor --- src/xenia/ui/window_qt.cc | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/src/xenia/ui/window_qt.cc b/src/xenia/ui/window_qt.cc index c4c794e94..4e40a6d4d 100644 --- a/src/xenia/ui/window_qt.cc +++ b/src/xenia/ui/window_qt.cc @@ -235,21 +235,26 @@ bool QtWindow::OpenImpl() { } } + // Use the screen where the cursor is, falling back to primary + QScreen* screen = QGuiApplication::screenAt(QCursor::pos()); + if (!screen) { + screen = QGuiApplication::primaryScreen(); + } + + // Position window on target screen (required for correct fullscreen monitor) + if (screen) { + QRect screen_geometry = screen->availableGeometry(); + int x = screen_geometry.x() + + (screen_geometry.width() - GetDesiredLogicalWidth()) / 2; + int y = screen_geometry.y() + + (screen_geometry.height() - GetDesiredLogicalHeight()) / 2; + qwindow_->move(x, y); + } + if (IsFullscreen()) { qwindow_->showFullScreen(); } else { - // Resize window to desired dimensions qwindow_->resize(GetDesiredLogicalWidth(), GetDesiredLogicalHeight()); - - // Center window on screen - QScreen* screen = QGuiApplication::primaryScreen(); - if (screen) { - QRect screen_geometry = screen->availableGeometry(); - int x = (screen_geometry.width() - GetDesiredLogicalWidth()) / 2; - int y = (screen_geometry.height() - GetDesiredLogicalHeight()) / 2; - qwindow_->move(x, y); - } - qwindow_->show(); }