diff --git a/editor/plugins/sprite_frames_editor_plugin.cpp b/editor/plugins/sprite_frames_editor_plugin.cpp index 9c1170492b25..d8750db60116 100644 --- a/editor/plugins/sprite_frames_editor_plugin.cpp +++ b/editor/plugins/sprite_frames_editor_plugin.cpp @@ -525,18 +525,21 @@ void SpriteFramesEditor::_prepare_sprite_sheet(const String &p_file) { split_sheet_offset_x->set_max(size.x); split_sheet_offset_y->set_max(size.y); - // Different texture, reset to 4x4. - dominant_param = PARAM_FRAME_COUNT; - updating_split_settings = true; - split_sheet_h->set_value(4); - split_sheet_v->set_value(4); - split_sheet_size_x->set_value(size.x / 4); - split_sheet_size_y->set_value(size.y / 4); - split_sheet_sep_x->set_value(0); - split_sheet_sep_y->set_value(0); - split_sheet_offset_x->set_value(0); - split_sheet_offset_y->set_value(0); - updating_split_settings = false; + if (size != previous_texture_size) { + // Different texture, reset to 4x4. + dominant_param = PARAM_FRAME_COUNT; + updating_split_settings = true; + split_sheet_h->set_value(4); + split_sheet_v->set_value(4); + split_sheet_size_x->set_value(size.x / 4); + split_sheet_size_y->set_value(size.y / 4); + split_sheet_sep_x->set_value(0); + split_sheet_sep_y->set_value(0); + split_sheet_offset_x->set_value(0); + split_sheet_offset_y->set_value(0); + updating_split_settings = false; + } + previous_texture_size = size; // Reset zoom. _sheet_zoom_reset(); diff --git a/editor/plugins/sprite_frames_editor_plugin.h b/editor/plugins/sprite_frames_editor_plugin.h index 730dddade1f3..2d0e43be1ee5 100644 --- a/editor/plugins/sprite_frames_editor_plugin.h +++ b/editor/plugins/sprite_frames_editor_plugin.h @@ -167,6 +167,8 @@ class SpriteFramesEditor : public HSplitContainer { bool frames_need_sort = false; int last_frame_selected = 0; + Size2i previous_texture_size; + float scale_ratio; int thumbnail_default_size; float thumbnail_zoom;