diff --git a/pkgs/gui-pkgs/gui-lib/mred/private/wx/cocoa/window.rkt b/pkgs/gui-pkgs/gui-lib/mred/private/wx/cocoa/window.rkt index 717f202226..823fdd92e4 100644 --- a/pkgs/gui-pkgs/gui-lib/mred/private/wx/cocoa/window.rkt +++ b/pkgs/gui-pkgs/gui-lib/mred/private/wx/cocoa/window.rkt @@ -453,6 +453,7 @@ (define _CGError _int32) (define-appserv CGWarpMouseCursorPosition (_fun _NSPoint -> _CGError)) +(define-appserv CGAssociateMouseAndMouseCursorPosition (_fun _BOOL -> _CGError)) (define window% (class object% @@ -895,7 +896,8 @@ (define xb (box x)) (define yb (box y)) (client-to-screen xb yb) - (void (CGWarpMouseCursorPosition (make-NSPoint (unbox xb) (unbox yb))))) + (void (CGWarpMouseCursorPosition (make-NSPoint (unbox xb) (unbox yb)))) + (void (CGAssociateMouseAndMouseCursorPosition #t))) (define/private (create-compose-window) (unless compose-cocoa diff --git a/pkgs/gui-pkgs/gui-test/tests/gracket/item.rkt b/pkgs/gui-pkgs/gui-test/tests/gracket/item.rkt index dbc19149f6..8fe4c0a2af 100644 --- a/pkgs/gui-pkgs/gui-test/tests/gracket/item.rkt +++ b/pkgs/gui-pkgs/gui-test/tests/gracket/item.rkt @@ -2480,6 +2480,11 @@ (make-object button% "Make Blue Editor" edp (lambda (b e) (editor-frame null "blue"))) +(new horizontal-panel% [parent edp]) +(make-object button% + "Warp Pointer" edp + (lambda (b e) + (send selector warp-pointer 5 5))) (define (choose-next radios) (let loop ([l radios])