|
@@ -2041,6 +2041,12 @@ void DisplayServerOSX::mouse_set_mode(MouseMode p_mode) {
|
|
CGDisplayHideCursor(kCGDirectMainDisplay);
|
|
CGDisplayHideCursor(kCGDirectMainDisplay);
|
|
}
|
|
}
|
|
CGAssociateMouseAndMouseCursorPosition(false);
|
|
CGAssociateMouseAndMouseCursorPosition(false);
|
|
|
|
+ WindowData &wd = windows[MAIN_WINDOW_ID];
|
|
|
|
+ const NSRect contentRect = [wd.window_view frame];
|
|
|
|
+ NSRect pointInWindowRect = NSMakeRect(contentRect.size.width / 2, contentRect.size.height / 2, 0, 0);
|
|
|
|
+ NSPoint pointOnScreen = [[wd.window_view window] convertRectToScreen:pointInWindowRect].origin;
|
|
|
|
+ CGPoint lMouseWarpPos = { pointOnScreen.x, CGDisplayBounds(CGMainDisplayID()).size.height - pointOnScreen.y };
|
|
|
|
+ CGWarpMouseCursorPosition(lMouseWarpPos);
|
|
} else if (p_mode == MOUSE_MODE_HIDDEN) {
|
|
} else if (p_mode == MOUSE_MODE_HIDDEN) {
|
|
if (mouse_mode == MOUSE_MODE_VISIBLE || mouse_mode == MOUSE_MODE_CONFINED) {
|
|
if (mouse_mode == MOUSE_MODE_VISIBLE || mouse_mode == MOUSE_MODE_CONFINED) {
|
|
CGDisplayHideCursor(kCGDirectMainDisplay);
|
|
CGDisplayHideCursor(kCGDirectMainDisplay);
|