Avoid double editing when clicking AnimatedSprite

This commit is contained in:
kobewi 2024-04-17 19:51:42 +02:00
parent 4b7776e31b
commit e36301e418
2 changed files with 7 additions and 2 deletions

View File

@ -1476,6 +1476,10 @@ 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 {
return frames.is_valid();
}
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) {
if (read_only) { if (read_only) {
return false; return false;
@ -2325,7 +2329,7 @@ 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 p_object->is_class("SpriteFrames"); return !frames_editor->is_editing() && Object::cast_to<SpriteFrames>(p_object);
} }
void SpriteFramesEditorPlugin::make_visible(bool p_visible) { void SpriteFramesEditorPlugin::make_visible(bool p_visible) {

View File

@ -253,7 +253,6 @@ class SpriteFramesEditor : public HSplitContainer {
void _update_show_settings(); void _update_show_settings();
void _edit(); void _edit();
void _regist_scene_undo(EditorUndoRedoManager *undo_redo);
void _fetch_sprite_node(); void _fetch_sprite_node();
void _remove_sprite_node(); void _remove_sprite_node();
@ -270,6 +269,8 @@ protected:
public: public:
void edit(Ref<SpriteFrames> p_frames); void edit(Ref<SpriteFrames> p_frames);
bool is_editing() const;
SpriteFramesEditor(); SpriteFramesEditor();
}; };