diff --git a/platform/linuxbsd/x11/display_server_x11.cpp b/platform/linuxbsd/x11/display_server_x11.cpp index a607e26ac5..8724bc871a 100644 --- a/platform/linuxbsd/x11/display_server_x11.cpp +++ b/platform/linuxbsd/x11/display_server_x11.cpp @@ -2856,11 +2856,11 @@ void DisplayServerX11::cursor_set_custom_image(const Ref &p_cursor, Cu cursors[p_shape] = XcursorImageLoadCursor(x11_display, cursor_img[p_shape]); } + cursors_cache.erase(p_shape); + CursorShape c = current_cursor; current_cursor = CURSOR_MAX; cursor_set_shape(c); - - cursors_cache.erase(p_shape); } } diff --git a/platform/macos/display_server_macos.mm b/platform/macos/display_server_macos.mm index a0a851b7dc..973925a003 100644 --- a/platform/macos/display_server_macos.mm +++ b/platform/macos/display_server_macos.mm @@ -3415,9 +3415,9 @@ void DisplayServerMacOS::cursor_set_custom_image(const Ref &p_cursor, cursors[p_shape] = nullptr; } - cursor_update_shape(); - cursors_cache.erase(p_shape); + + cursor_update_shape(); } } diff --git a/platform/windows/display_server_windows.cpp b/platform/windows/display_server_windows.cpp index ea93c47ec5..4c89e56910 100644 --- a/platform/windows/display_server_windows.cpp +++ b/platform/windows/display_server_windows.cpp @@ -1907,11 +1907,11 @@ void DisplayServerWindows::cursor_set_custom_image(const Ref &p_cursor } cursors[p_shape] = nullptr; + cursors_cache.erase(p_shape); + CursorShape c = cursor_shape; cursor_shape = CURSOR_MAX; cursor_set_shape(c); - - cursors_cache.erase(p_shape); } }