[PATCH 4/5] winemac.drv: Stop cursor clipping when all windows are minimized.
Tim Clem
tclem at codeweavers.com
Thu Oct 14 13:39:16 CDT 2021
There's no analogous state on Windows, where an app is focused but has no
visible windows, but this seems like the best behavior.
Signed-off-by: Tim Clem <tclem at codeweavers.com>
---
dlls/winemac.drv/cocoa_app.h | 1 +
dlls/winemac.drv/cocoa_app.m | 12 ++++++++++++
dlls/winemac.drv/cocoa_window.m | 3 +++
3 files changed, 16 insertions(+)
diff --git a/dlls/winemac.drv/cocoa_app.h b/dlls/winemac.drv/cocoa_app.h
index 5db083d8e7bd..185ba2ceb707 100644
--- a/dlls/winemac.drv/cocoa_app.h
+++ b/dlls/winemac.drv/cocoa_app.h
@@ -158,6 +158,7 @@ - (void) noteKey:(uint16_t)keyCode pressed:(BOOL)pressed;
- (void) window:(WineWindow*)window isBeingDragged:(BOOL)dragged;
- (void) windowWillStartLiveResize:(WineWindow*)window;
+ - (void) windowDidMiniaturize:(WineWindow*)window;
- (void) windowWillOrderOut:(WineWindow*)window;
- (void) flipRect:(NSRect*)rect;
diff --git a/dlls/winemac.drv/cocoa_app.m b/dlls/winemac.drv/cocoa_app.m
index bace8b3973b1..bd2ef4c8b1e3 100644
--- a/dlls/winemac.drv/cocoa_app.m
+++ b/dlls/winemac.drv/cocoa_app.m
@@ -1546,6 +1546,18 @@ - (void) windowWillStartLiveResize:(WineWindow*)window
[self stopClippingCursor];
}
+ - (void) windowDidMiniaturize:(WineWindow *)window
+ {
+ /* If all our windows are minimized, disable cursor clipping. */
+ for (WineWindow* w in [NSApp windows])
+ {
+ if ([w isKindOfClass:[WineWindow class]] && ![w isMiniaturized] && [w isVisible])
+ return;
+ }
+
+ [self stopClippingCursor];
+ }
+
- (void) windowWillOrderOut:(WineWindow*)window
{
if ([windowsBeingDragged containsObject:window])
diff --git a/dlls/winemac.drv/cocoa_window.m b/dlls/winemac.drv/cocoa_window.m
index 2e63e9645189..883c70ded928 100644
--- a/dlls/winemac.drv/cocoa_window.m
+++ b/dlls/winemac.drv/cocoa_window.m
@@ -2898,6 +2898,9 @@ - (void)windowDidMiniaturize:(NSNotification *)notification
{
if (fullscreen && [self isOnActiveSpace])
[[WineApplicationController sharedController] updateFullscreenWindows];
+
+ [[WineApplicationController sharedController] windowDidMiniaturize:self];
+
[self checkWineDisplayLink];
}
--
2.33.0
More information about the wine-devel
mailing list