mirror of https://github.com/godotengine/godot
Wayland: Check custom cursor resource reference for cache invalidation
Images don't have RIDs and this way of checking stuff broke the cursor cache. Let's do like all other platforms and check the resource reference instead.
This commit is contained in:
parent
b0655dc86f
commit
c8087567c9
|
|
@ -1033,7 +1033,7 @@ void DisplayServerWayland::cursor_set_custom_image(const Ref<Resource> &p_cursor
|
|||
HashMap<CursorShape, CustomCursor>::Iterator cursor_c = custom_cursors.find(p_shape);
|
||||
|
||||
if (cursor_c) {
|
||||
if (cursor_c->value.rid == p_cursor->get_rid() && cursor_c->value.hotspot == p_hotspot) {
|
||||
if (cursor_c->value.resource == p_cursor && cursor_c->value.hotspot == p_hotspot) {
|
||||
// We have a cached cursor. Nice.
|
||||
wayland_thread.cursor_set_shape(p_shape);
|
||||
return;
|
||||
|
|
@ -1049,7 +1049,7 @@ void DisplayServerWayland::cursor_set_custom_image(const Ref<Resource> &p_cursor
|
|||
|
||||
CustomCursor &cursor = custom_cursors[p_shape];
|
||||
|
||||
cursor.rid = p_cursor->get_rid();
|
||||
cursor.resource = p_cursor;
|
||||
cursor.hotspot = p_hotspot;
|
||||
|
||||
wayland_thread.cursor_shape_set_custom_image(p_shape, image, p_hotspot);
|
||||
|
|
|
|||
|
|
@ -101,7 +101,7 @@ class DisplayServerWayland : public DisplayServer {
|
|||
};
|
||||
|
||||
struct CustomCursor {
|
||||
RID rid;
|
||||
Ref<Resource> resource;
|
||||
Point2i hotspot;
|
||||
};
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue