diff options
| author | Juan Linietsky <reduzio@gmail.com> | 2014-09-25 16:14:37 -0300 |
|---|---|---|
| committer | Juan Linietsky <reduzio@gmail.com> | 2014-09-25 16:14:37 -0300 |
| commit | 870c075ebf67749b21b6cc0c705088bbe273f1bb (patch) | |
| tree | 3d40d2527bdb9bf17a1eb2e5dc40637af55255e2 | |
| parent | 46135affac29a09200fc01a34dd8408a3d83d493 (diff) | |
| parent | 72558b617332a7e9499f4d40ba782f99a1789ead (diff) | |
Merge pull request #731 from mikica1986vee/master
awesome!
| -rw-r--r-- | platform/osx/os_osx.mm | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/platform/osx/os_osx.mm b/platform/osx/os_osx.mm index c09dadc066..643c287c95 100644 --- a/platform/osx/os_osx.mm +++ b/platform/osx/os_osx.mm @@ -1070,7 +1070,20 @@ bool OS_OSX::is_mouse_grab_enabled() const { void OS_OSX::warp_mouse_pos(const Point2& p_to) { -//not done, must be done + //copied from windows impl with osx native calls + if (mouse_mode == MOUSE_MODE_CAPTURED){ + mouse_x = p_to.x; + mouse_y = p_to.y; + } + else{ //set OS position + CGPoint lMouseWarpPos = {p_to.x, p_to.y}; + + CGEventSourceRef lEventRef = CGEventSourceCreate(kCGEventSourceStateCombinedSessionState); + CGEventSourceSetLocalEventsSuppressionInterval(lEventRef, 0.0); + CGAssociateMouseAndMouseCursorPosition(false); + CGWarpMouseCursorPosition(lMouseWarpPos); + CGAssociateMouseAndMouseCursorPosition(true); + } } Point2 OS_OSX::get_mouse_pos() const { |