Skip to content

Commit

Permalink
Changed HTML input color_changed logic.
Browse files Browse the repository at this point in the history
Made the HTML field send change events based on whether the new color's string is different from the previous color's string (instead of whether the new string parses to the current color value).
Previously, updating the color value even when the corresponding string hadn't changed would unnecessarily quantize the color value to 8 bits just by opening/closing the Color Picker.
  • Loading branch information
bs-mwoerner committed Dec 17, 2023
1 parent 41365c6 commit 21d778b
Showing 1 changed file with 5 additions and 4 deletions.
9 changes: 5 additions & 4 deletions scene/gui/color_picker.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -556,16 +556,17 @@ void ColorPicker::_html_submitted(const String &p_html) {
return;
}

const Color previous_color = color;
color = Color::from_string(p_html.strip_edges(), previous_color);
Color new_color = Color::from_string(p_html.strip_edges(), color);

if (!is_editing_alpha()) {
color.a = previous_color.a;
new_color.a = color.a;
}

if (color == previous_color) {
if (new_color.to_argb32() == color.to_argb32()) {
return;
}
color = new_color;

if (!is_inside_tree()) {
return;
}
Expand Down

0 comments on commit 21d778b

Please sign in to comment.