Properly revert cursor when using set_custom_mouse_cursor with null

Fixes #32486
This commit is contained in:
PouleyKetchoupp 2019-10-03 13:02:11 +02:00
parent 09bf1b35c0
commit 5bfe32eaa4
4 changed files with 16 additions and 2 deletions

View File

@ -574,6 +574,8 @@ void OS_JavaScript::set_custom_mouse_cursor(const RES &p_cursor, CursorShape p_s
}, cursors[p_shape].utf8().get_data()); }, cursors[p_shape].utf8().get_data());
/* clang-format on */ /* clang-format on */
cursors[p_shape] = ""; cursors[p_shape] = "";
cursors_cache.erase(p_shape);
} }
set_cursor_shape(cursor_shape); set_cursor_shape(cursor_shape);

View File

@ -1973,11 +1973,16 @@ void OS_OSX::set_custom_mouse_cursor(const RES &p_cursor, CursorShape p_shape, c
[nsimage release]; [nsimage release];
} else { } else {
// Reset to default system cursor // Reset to default system cursor
cursors[p_shape] = NULL; if (cursors[p_shape] != NULL) {
[cursors[p_shape] release];
cursors[p_shape] = NULL;
}
CursorShape c = cursor_shape; CursorShape c = cursor_shape;
cursor_shape = CURSOR_MAX; cursor_shape = CURSOR_MAX;
set_cursor_shape(c); set_cursor_shape(c);
cursors_cache.erase(p_shape);
} }
} }

View File

@ -2485,11 +2485,16 @@ void OS_Windows::set_custom_mouse_cursor(const RES &p_cursor, CursorShape p_shap
DeleteObject(bitmap); DeleteObject(bitmap);
} else { } else {
// Reset to default system cursor // Reset to default system cursor
cursors[p_shape] = NULL; if (cursors[p_shape]) {
DestroyIcon(cursors[p_shape]);
cursors[p_shape] = NULL;
}
CursorShape c = cursor_shape; CursorShape c = cursor_shape;
cursor_shape = CURSOR_MAX; cursor_shape = CURSOR_MAX;
set_cursor_shape(c); set_cursor_shape(c);
cursors_cache.erase(p_shape);
} }
} }

View File

@ -2996,6 +2996,8 @@ void OS_X11::set_custom_mouse_cursor(const RES &p_cursor, CursorShape p_shape, c
CursorShape c = current_cursor; CursorShape c = current_cursor;
current_cursor = CURSOR_MAX; current_cursor = CURSOR_MAX;
set_cursor_shape(c); set_cursor_shape(c);
cursors_cache.erase(p_shape);
} }
} }