Skip to content

Commit 3805845

Browse files
committed
Merge pull request #104227 from FeniXb3/fix-color-preset-crash
Fix game crashes when adding color preset after clearing presets in another control
2 parents 5980985 + d51f33e commit 3805845

File tree

1 file changed

+7
-2
lines changed

1 file changed

+7
-2
lines changed

scene/gui/color_picker.cpp

+7-2
Original file line numberDiff line numberDiff line change
@@ -1138,16 +1138,21 @@ void ColorPicker::add_preset(const Color &p_color) {
11381138
List<Color>::Element *e = presets.find(p_color);
11391139
if (e) {
11401140
presets.move_to_back(e);
1141-
preset_cache.move_to_back(preset_cache.find(p_color));
11421141

11431142
preset_container->move_child(preset_group->get_pressed_button(), preset_container->get_child_count() - 1);
11441143
} else {
11451144
presets.push_back(p_color);
1146-
preset_cache.push_back(p_color);
11471145

11481146
_add_preset_button(_get_preset_size(), p_color);
11491147
}
11501148

1149+
List<Color>::Element *cache_e = preset_cache.find(p_color);
1150+
if (cache_e) {
1151+
preset_cache.move_to_back(cache_e);
1152+
} else {
1153+
preset_cache.push_back(p_color);
1154+
}
1155+
11511156
if (!palette_name->get_text().is_empty()) {
11521157
palette_name->set_text(vformat("%s*", palette_name->get_text().trim_suffix("*")));
11531158
palette_name->set_tooltip_text(ETR("The changes to this palette have not been saved to a file."));

0 commit comments

Comments
 (0)