summaryrefslogtreecommitdiffstats
path: root/editor
diff options
context:
space:
mode:
authorHilderin <81109165+Hilderin@users.noreply.github.com>2024-06-12 21:42:49 -0400
committerHilderin <81109165+Hilderin@users.noreply.github.com>2024-06-12 21:42:49 -0400
commit4575ccbad959c2678b75411254f89bb162f8095b (patch)
treea7323fe75929097a7ec714f0166216e1d864994e /editor
parent475248d99df89fc29032a42f1d29ad4cef49c8b5 (diff)
downloadredot-engine-4575ccbad959c2678b75411254f89bb162f8095b.tar.gz
Fix Crash when trying to undo SpriteFrames animation rename #93079
Diffstat (limited to 'editor')
-rw-r--r--editor/plugins/sprite_frames_editor_plugin.cpp10
-rw-r--r--editor/plugins/sprite_frames_editor_plugin.h2
2 files changed, 8 insertions, 4 deletions
diff --git a/editor/plugins/sprite_frames_editor_plugin.cpp b/editor/plugins/sprite_frames_editor_plugin.cpp
index ae6ec0f702..d1da61e5fc 100644
--- a/editor/plugins/sprite_frames_editor_plugin.cpp
+++ b/editor/plugins/sprite_frames_editor_plugin.cpp
@@ -1476,8 +1476,8 @@ void SpriteFramesEditor::edit(Ref<SpriteFrames> p_frames) {
_fetch_sprite_node(); // Fetch node after set frames.
}
-bool SpriteFramesEditor::is_editing() const {
- return frames.is_valid();
+Ref<SpriteFrames> SpriteFramesEditor::get_sprite_frames() const {
+ return frames;
}
Variant SpriteFramesEditor::get_drag_data_fw(const Point2 &p_point, Control *p_from) {
@@ -2337,7 +2337,11 @@ bool SpriteFramesEditorPlugin::handles(Object *p_object) const {
if (animated_sprite_3d && *animated_sprite_3d->get_sprite_frames()) {
return true;
}
- return !frames_editor->is_editing() && Object::cast_to<SpriteFrames>(p_object);
+ SpriteFrames *frames = Object::cast_to<SpriteFrames>(p_object);
+ if (frames && (frames_editor->get_sprite_frames().is_null() || frames_editor->get_sprite_frames() == frames)) {
+ return true;
+ }
+ return false;
}
void SpriteFramesEditorPlugin::make_visible(bool p_visible) {
diff --git a/editor/plugins/sprite_frames_editor_plugin.h b/editor/plugins/sprite_frames_editor_plugin.h
index 0e26a793a7..9b6aaf98fe 100644
--- a/editor/plugins/sprite_frames_editor_plugin.h
+++ b/editor/plugins/sprite_frames_editor_plugin.h
@@ -269,7 +269,7 @@ protected:
public:
void edit(Ref<SpriteFrames> p_frames);
- bool is_editing() const;
+ Ref<SpriteFrames> get_sprite_frames() const;
SpriteFramesEditor();
};