Ken Thomases : winemac: When ClipCursor() is called redundantly, don' t warp the cursor or discard mouse move events.

Alexandre Julliard julliard at winehq.org
Tue Dec 17 14:05:00 CST 2013


Module: wine
Branch: master
Commit: 77f0a63b4fce90e4a35393eb16468f11a922ea3a
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=77f0a63b4fce90e4a35393eb16468f11a922ea3a

Author: Ken Thomases <ken at codeweavers.com>
Date:   Mon Dec 16 19:42:22 2013 -0600

winemac: When ClipCursor() is called redundantly, don't warp the cursor or discard mouse move events.

Fixes a problem in some games which repeatedly (re)establish the same cursor
clipping rect, making it exceedingly difficult to move the camera with the
mouse.

---

 dlls/winemac.drv/cocoa_app.m |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)

diff --git a/dlls/winemac.drv/cocoa_app.m b/dlls/winemac.drv/cocoa_app.m
index ce43e27..c31bceb 100644
--- a/dlls/winemac.drv/cocoa_app.m
+++ b/dlls/winemac.drv/cocoa_app.m
@@ -1353,6 +1353,10 @@ int macdrv_err_on;
         if (!cursorClippingEventTap && ![self installEventTap])
             return FALSE;
 
+        if (clippingCursor && CGRectEqualToRect(rect, cursorClipRect) &&
+            CGEventTapIsEnabled(cursorClippingEventTap))
+            return TRUE;
+
         err = CGAssociateMouseAndMouseCursorPosition(false);
         if (err != kCGErrorSuccess)
             return FALSE;




More information about the wine-cvs mailing list