From 72d4fd8f0d3cddd634c290d7fc614a20831d7ab0 Mon Sep 17 00:00:00 2001 From: Guilherme Felipe Date: Mon, 17 Sep 2018 12:24:44 -0300 Subject: [PATCH] Fix Input::set_custom_mouse_cursor showing cursor when it's invisible --- platform/osx/os_osx.mm | 4 +++- platform/windows/os_windows.cpp | 4 +++- platform/x11/os_x11.cpp | 4 +++- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/platform/osx/os_osx.mm b/platform/osx/os_osx.mm index 8993cb7b998..04d09f579cc 100644 --- a/platform/osx/os_osx.mm +++ b/platform/osx/os_osx.mm @@ -1272,7 +1272,9 @@ void OS_OSX::set_custom_mouse_cursor(const RES &p_cursor, CursorShape p_shape, c cursors[p_shape] = cursor; if (p_shape == CURSOR_ARROW) { - [cursor set]; + if (mouse_mode == MOUSE_MODE_VISIBLE) { + [cursor set]; + } } [imgrep release]; diff --git a/platform/windows/os_windows.cpp b/platform/windows/os_windows.cpp index a02cef0e39f..10a88a19ce2 100644 --- a/platform/windows/os_windows.cpp +++ b/platform/windows/os_windows.cpp @@ -2059,7 +2059,9 @@ void OS_Windows::set_custom_mouse_cursor(const RES &p_cursor, CursorShape p_shap cursors[p_shape] = CreateIconIndirect(&iconinfo); if (p_shape == CURSOR_ARROW) { - SetCursor(cursors[p_shape]); + if (mouse_mode == MOUSE_MODE_VISIBLE) { + SetCursor(cursors[p_shape]); + } } if (hAndMask != NULL) { diff --git a/platform/x11/os_x11.cpp b/platform/x11/os_x11.cpp index ecbdf9b41ea..bfb7fe973c2 100644 --- a/platform/x11/os_x11.cpp +++ b/platform/x11/os_x11.cpp @@ -2218,7 +2218,9 @@ void OS_X11::set_custom_mouse_cursor(const RES &p_cursor, CursorShape p_shape, c cursors[p_shape] = XcursorImageLoadCursor(x11_display, cursor_image); if (p_shape == CURSOR_ARROW) { - XDefineCursor(x11_display, x11_window, cursors[p_shape]); + if (mouse_mode == MOUSE_MODE_VISIBLE) { + XDefineCursor(x11_display, x11_window, cursors[p_shape]); + } } memfree(cursor_image->pixels);