Module: wine Branch: master Commit: cd10a0df5e1a67feebd06c980139241dfeea9658 URL: http://source.winehq.org/git/wine.git/?a=commit;h=cd10a0df5e1a67feebd06c9801...
Author: Ken Thomases ken@codeweavers.com Date: Wed Dec 11 12:50:23 2013 -0600
winemac: Consolidate the logic for deciding if cursor clipping should be active.
---
dlls/winemac.drv/cocoa_app.m | 23 +++++++++++++++-------- 1 files changed, 15 insertions(+), 8 deletions(-)
diff --git a/dlls/winemac.drv/cocoa_app.m b/dlls/winemac.drv/cocoa_app.m index 8ab8954..c9f51d6 100644 --- a/dlls/winemac.drv/cocoa_app.m +++ b/dlls/winemac.drv/cocoa_app.m @@ -1316,7 +1316,7 @@ int macdrv_err_on;
- (void) activateCursorClipping { - if (clippingCursor) + if (cursorClippingEventTap && !CGEventTapIsEnabled(cursorClippingEventTap)) { CGEventTapEnable(cursorClippingEventTap, TRUE); [self setCursorPosition:NSPointToCGPoint([self flippedMouseLocation:[NSEvent mouseLocation]])]; @@ -1325,7 +1325,7 @@ int macdrv_err_on;
- (void) deactivateCursorClipping { - if (clippingCursor) + if (cursorClippingEventTap && CGEventTapIsEnabled(cursorClippingEventTap)) { CGEventTapEnable(cursorClippingEventTap, FALSE); [warpRecords removeAllObjects]; @@ -1333,6 +1333,14 @@ int macdrv_err_on; } }
+ - (void) updateCursorClippingState + { + if (clippingCursor && [NSApp isActive]) + [self activateCursorClipping]; + else + [self deactivateCursorClipping]; + } + - (BOOL) startClippingCursor:(CGRect)rect { CGError err; @@ -1346,8 +1354,7 @@ int macdrv_err_on;
clippingCursor = TRUE; cursorClipRect = rect; - if ([NSApp isActive]) - [self activateCursorClipping]; + [self updateCursorClippingState];
return TRUE; } @@ -1358,8 +1365,8 @@ int macdrv_err_on; if (err != kCGErrorSuccess) return FALSE;
- [self deactivateCursorClipping]; clippingCursor = FALSE; + [self updateCursorClippingState];
return TRUE; } @@ -2012,7 +2019,7 @@ int macdrv_err_on; } [latentDisplayModes removeAllObjects];
- [self activateCursorClipping]; + [self updateCursorClippingState];
[self updateFullscreenWindows]; [self adjustWindowLevels:YES]; @@ -2056,6 +2063,8 @@ int macdrv_err_on; macdrv_event* event; WineEventQueue* queue;
+ [self updateCursorClippingState]; + [self invalidateGotFocusEvents];
event = macdrv_create_event(APP_DEACTIVATED, nil); @@ -2123,8 +2132,6 @@ int macdrv_err_on;
- (void)applicationWillResignActive:(NSNotification *)notification { - [self deactivateCursorClipping]; - [self adjustWindowLevels:NO]; }