From a132ed0ca49de6e2e7e202c3dce8e6a21d9282c0 Mon Sep 17 00:00:00 2001 From: "ocean (they/them)" Date: Fri, 5 May 2023 10:53:16 -0400 Subject: [PATCH] Fix adding colors to swatches not updating in previous ColorPickers. ColorPicker was only updating colors if its swatches were empty. It should always update from the cache in case some other ColorPicker updated the swatch cache. --- scene/gui/color_picker.cpp | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/scene/gui/color_picker.cpp b/scene/gui/color_picker.cpp index 5e861ba45d4..ff387899be6 100644 --- a/scene/gui/color_picker.cpp +++ b/scene/gui/color_picker.cpp @@ -608,13 +608,14 @@ void ColorPicker::_update_presets() { #ifdef TOOLS_ENABLED if (editor_settings) { - // Only load preset buttons when the only child is the add-preset button. - if (preset_container->get_child_count() == 1) { - for (int i = 0; i < preset_cache.size(); i++) { - _add_preset_button(preset_size, preset_cache[i]); - } - _notification(NOTIFICATION_VISIBILITY_CHANGED); + // Rebuild swatch color buttons, keeping the add-preset button in the first position. + for (int i = 1; i < preset_container->get_child_count(); i++) { + preset_container->get_child(i)->queue_free(); } + for (int i = 0; i < preset_cache.size(); i++) { + _add_preset_button(preset_size, preset_cache[i]); + } + _notification(NOTIFICATION_VISIBILITY_CHANGED); } #endif }