From a308b50e1bca7d87278297b104f5018bf8e7d540 Mon Sep 17 00:00:00 2001 From: Harold Date: Fri, 12 Apr 2024 13:37:18 +0200 Subject: [PATCH] Re-grab input when automatic capture is enabled Make the window auto-capture the mouse again in full screen when it regains focus (for instance after swiping back to the UTM app). fixes #6242 --- .../Display/VMDisplayQemuMetalWindowController.swift | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/Platform/macOS/Display/VMDisplayQemuMetalWindowController.swift b/Platform/macOS/Display/VMDisplayQemuMetalWindowController.swift index 656e03c3a..516f0798d 100644 --- a/Platform/macOS/Display/VMDisplayQemuMetalWindowController.swift +++ b/Platform/macOS/Display/VMDisplayQemuMetalWindowController.swift @@ -403,7 +403,6 @@ extension VMDisplayQemuMetalWindowController { func windowDidEnterFullScreen(_ notification: Notification) { isFullScreen = true if isFullScreenAutoCapture { - captureMouseToolbarButton.state = .on captureMouse() } } @@ -411,11 +410,17 @@ extension VMDisplayQemuMetalWindowController { func windowDidExitFullScreen(_ notification: Notification) { isFullScreen = false if isFullScreenAutoCapture { - captureMouseToolbarButton.state = .off releaseMouse() } } + override func windowDidBecomeKey(_ notification: Notification) { + if isFullScreen && isFullScreenAutoCapture { + captureMouse() + } + super.windowDidBecomeKey(notification) + } + override func windowDidResignKey(_ notification: Notification) { releaseMouse() super.windowDidResignKey(notification)