From e80dc4a541857a193468956a40685e6c4e41474d Mon Sep 17 00:00:00 2001 From: Thraka Date: Sat, 15 Nov 2025 23:16:54 -0800 Subject: [PATCH] Automatically release mouse; recapture mouse --- src/qt/qt_mainwindow.cpp | 14 ++++++++++++++ src/qt/qt_mainwindow.hpp | 3 +++ 2 files changed, 17 insertions(+) diff --git a/src/qt/qt_mainwindow.cpp b/src/qt/qt_mainwindow.cpp index 0d11a68ae..d5c3f26c4 100644 --- a/src/qt/qt_mainwindow.cpp +++ b/src/qt/qt_mainwindow.cpp @@ -2218,6 +2218,20 @@ MainWindow::toggleFullscreenUI() return; fullscreen_ui_visible ^= 1; + + if (fullscreen_ui_visible) { + // UI is being shown - save mouse capture state and release if captured + mouse_was_captured = (mouse_capture != 0); + if (mouse_was_captured) { + plat_mouse_capture(0); + } + } else { + // UI is being hidden - restore previous mouse capture state + if (mouse_was_captured) { + plat_mouse_capture(1); + } + } + ui->menubar->setVisible(fullscreen_ui_visible); ui->statusbar->setVisible(fullscreen_ui_visible && !hide_status_bar); ui->toolBar->setVisible(fullscreen_ui_visible && !hide_tool_bar); diff --git a/src/qt/qt_mainwindow.hpp b/src/qt/qt_mainwindow.hpp index 4a0d50659..9bec1a049 100644 --- a/src/qt/qt_mainwindow.hpp +++ b/src/qt/qt_mainwindow.hpp @@ -201,6 +201,9 @@ private: /* Fullscreen UI visibility state */ bool fullscreen_ui_visible = false; + /* Mouse capture state before showing fullscreen UI */ + bool mouse_was_captured = false; + friend class SpecifyDimensions; friend class ProgSettings; friend class RendererCommon;