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;