Merge pull request #93112 from Hilderin/fix-crash-undo-spriteframes-rename

Fix Crash when trying to undo SpriteFrames animation rename #93079
This commit is contained in:
Rémi Verschelde 2024-06-13 14:39:15 +02:00
commit 93447ceb37
No known key found for this signature in database
GPG key ID: C3336907360768E1
2 changed files with 8 additions and 4 deletions

View file

@ -1476,8 +1476,8 @@ void SpriteFramesEditor::edit(Ref<SpriteFrames> p_frames) {
_fetch_sprite_node(); // Fetch node after set frames. _fetch_sprite_node(); // Fetch node after set frames.
} }
bool SpriteFramesEditor::is_editing() const { Ref<SpriteFrames> SpriteFramesEditor::get_sprite_frames() const {
return frames.is_valid(); return frames;
} }
Variant SpriteFramesEditor::get_drag_data_fw(const Point2 &p_point, Control *p_from) { 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()) { if (animated_sprite_3d && *animated_sprite_3d->get_sprite_frames()) {
return true; 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) { void SpriteFramesEditorPlugin::make_visible(bool p_visible) {

View file

@ -269,7 +269,7 @@ protected:
public: public:
void edit(Ref<SpriteFrames> p_frames); void edit(Ref<SpriteFrames> p_frames);
bool is_editing() const; Ref<SpriteFrames> get_sprite_frames() const;
SpriteFramesEditor(); SpriteFramesEditor();
}; };