Automatically release mouse; recapture mouse

This commit is contained in:
Thraka
2025-11-15 23:16:54 -08:00
parent 316e14d5de
commit e80dc4a541
2 changed files with 17 additions and 0 deletions

View File

@@ -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);

View File

@@ -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;