macOS, prevent multiple CGDisplayHideCursor calls unpaired with CGDisplayShowCursor.
This commit is contained in:
parent
492625db28
commit
7a250b579f
|
@ -1937,10 +1937,14 @@ void DisplayServerOSX::mouse_set_mode(MouseMode p_mode) {
|
||||||
// Apple Docs state that the display parameter is not used.
|
// Apple Docs state that the display parameter is not used.
|
||||||
// "This parameter is not used. By default, you may pass kCGDirectMainDisplay."
|
// "This parameter is not used. By default, you may pass kCGDirectMainDisplay."
|
||||||
// https://developer.apple.com/library/mac/documentation/graphicsimaging/reference/Quartz_Services_Ref/Reference/reference.html
|
// https://developer.apple.com/library/mac/documentation/graphicsimaging/reference/Quartz_Services_Ref/Reference/reference.html
|
||||||
|
if (mouse_mode == MOUSE_MODE_VISIBLE || mouse_mode == MOUSE_MODE_CONFINED) {
|
||||||
CGDisplayHideCursor(kCGDirectMainDisplay);
|
CGDisplayHideCursor(kCGDirectMainDisplay);
|
||||||
|
}
|
||||||
CGAssociateMouseAndMouseCursorPosition(false);
|
CGAssociateMouseAndMouseCursorPosition(false);
|
||||||
} 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) {
|
||||||
CGDisplayHideCursor(kCGDirectMainDisplay);
|
CGDisplayHideCursor(kCGDirectMainDisplay);
|
||||||
|
}
|
||||||
CGAssociateMouseAndMouseCursorPosition(true);
|
CGAssociateMouseAndMouseCursorPosition(true);
|
||||||
} else {
|
} else {
|
||||||
CGDisplayShowCursor(kCGDirectMainDisplay);
|
CGDisplayShowCursor(kCGDirectMainDisplay);
|
||||||
|
|
Loading…
Reference in New Issue