1
0
mirror of https://github.com/godotengine/godot.git synced 2025-11-04 12:00:25 +00:00

Merge pull request #110581 from KoBeWi/round_like_earth

Fix color picker shape minimum size
This commit is contained in:
Thaddeus Crews
2025-10-28 12:19:32 -05:00
2 changed files with 6 additions and 17 deletions

View File

@@ -807,9 +807,6 @@ void ColorPickerShapeWheel::_wheel_uv_draw() {
} }
void ColorPickerShapeWheel::_initialize_controls() { void ColorPickerShapeWheel::_initialize_controls() {
wheel_margin = memnew(MarginContainer);
color_picker->shape_container->add_child(wheel_margin);
Ref<ShaderMaterial> material; Ref<ShaderMaterial> material;
material.instantiate(); material.instantiate();
material->set_shader(ColorPickerShape::wheel_shader); material->set_shader(ColorPickerShape::wheel_shader);
@@ -817,17 +814,17 @@ void ColorPickerShapeWheel::_initialize_controls() {
wheel = memnew(Control); wheel = memnew(Control);
wheel->set_material(material); wheel->set_material(material);
wheel_margin->add_child(wheel); color_picker->shape_container->add_child(wheel);
wheel->connect(SceneStringName(draw), callable_mp(this, &ColorPickerShapeWheel::_wheel_draw)); wheel->connect(SceneStringName(draw), callable_mp(this, &ColorPickerShapeWheel::_wheel_draw));
wheel_uv = memnew(Control); wheel_uv = memnew(Control);
wheel_margin->add_child(wheel_uv); wheel_uv->set_anchors_and_offsets_preset(Control::PRESET_FULL_RECT);
wheel->add_child(wheel_uv);
wheel_uv->connect(SceneStringName(focus_entered), callable_mp(this, &ColorPickerShapeWheel::_reset_wheel_focus)); wheel_uv->connect(SceneStringName(focus_entered), callable_mp(this, &ColorPickerShapeWheel::_reset_wheel_focus));
wheel_uv->connect(SceneStringName(gui_input), callable_mp(this, &ColorPickerShapeWheel::_wheel_input)); wheel_uv->connect(SceneStringName(gui_input), callable_mp(this, &ColorPickerShapeWheel::_wheel_input));
wheel_uv->connect(SceneStringName(draw), callable_mp(this, &ColorPickerShapeWheel::_wheel_uv_draw)); wheel_uv->connect(SceneStringName(draw), callable_mp(this, &ColorPickerShapeWheel::_wheel_uv_draw));
connect_shape_focus(wheel_uv); connect_shape_focus(wheel_uv);
controls.append(wheel_margin);
controls.append(wheel); controls.append(wheel);
controls.append(wheel_uv); controls.append(wheel_uv);
} }
@@ -848,8 +845,7 @@ void ColorPickerShapeWheel::_update_cursor(const Vector2 &p_color_change_vector,
void ColorPickerShapeWheel::update_theme() { void ColorPickerShapeWheel::update_theme() {
const ColorPicker::ThemeCache &theme_cache = color_picker->theme_cache; const ColorPicker::ThemeCache &theme_cache = color_picker->theme_cache;
wheel_margin->set_custom_minimum_size(Size2(theme_cache.sv_width, theme_cache.sv_height)); wheel->set_custom_minimum_size(Size2(theme_cache.sv_width, theme_cache.sv_height));
wheel_margin->add_theme_constant_override(SNAME("margin_bottom"), 8 * theme_cache.base_scale);
} }
void ColorPickerShapeWheel::grab_focus() { void ColorPickerShapeWheel::grab_focus() {
@@ -877,16 +873,13 @@ void ColorPickerShapeCircle::update_circle_cursor(const Vector2 &p_color_change_
} }
void ColorPickerShapeCircle::_initialize_controls() { void ColorPickerShapeCircle::_initialize_controls() {
circle_margin = memnew(MarginContainer);
color_picker->shape_container->add_child(circle_margin);
Ref<ShaderMaterial> material; Ref<ShaderMaterial> material;
material.instantiate(); material.instantiate();
material->set_shader(_get_shader()); material->set_shader(_get_shader());
circle = memnew(Control); circle = memnew(Control);
circle->set_material(material); circle->set_material(material);
circle_margin->add_child(circle); color_picker->shape_container->add_child(circle);
circle->connect(SceneStringName(draw), callable_mp(this, &ColorPickerShapeCircle::_circle_draw)); circle->connect(SceneStringName(draw), callable_mp(this, &ColorPickerShapeCircle::_circle_draw));
circle_overlay = memnew(Control); circle_overlay = memnew(Control);
@@ -902,7 +895,6 @@ void ColorPickerShapeCircle::_initialize_controls() {
value_slider->connect(SceneStringName(draw), callable_mp(this, &ColorPickerShapeCircle::_value_slider_draw)); value_slider->connect(SceneStringName(draw), callable_mp(this, &ColorPickerShapeCircle::_value_slider_draw));
connect_shape_focus(value_slider); connect_shape_focus(value_slider);
controls.append(circle_margin);
controls.append(circle); controls.append(circle);
controls.append(circle_overlay); controls.append(circle_overlay);
controls.append(value_slider); controls.append(value_slider);
@@ -910,8 +902,7 @@ void ColorPickerShapeCircle::_initialize_controls() {
void ColorPickerShapeCircle::update_theme() { void ColorPickerShapeCircle::update_theme() {
const ColorPicker::ThemeCache &theme_cache = color_picker->theme_cache; const ColorPicker::ThemeCache &theme_cache = color_picker->theme_cache;
circle_margin->set_custom_minimum_size(Size2(theme_cache.sv_width, theme_cache.sv_height)); circle->set_custom_minimum_size(Size2(theme_cache.sv_width, theme_cache.sv_height));
circle_margin->add_theme_constant_override(SNAME("margin_bottom"), 8 * theme_cache.base_scale);
value_slider->set_custom_minimum_size(Size2(theme_cache.h_width, 0)); value_slider->set_custom_minimum_size(Size2(theme_cache.h_width, 0));
} }

View File

@@ -172,7 +172,6 @@ class ColorPickerShapeWheel : public ColorPickerShape {
static constexpr float WHEEL_RADIUS = 0.42; static constexpr float WHEEL_RADIUS = 0.42;
MarginContainer *wheel_margin = nullptr;
Control *wheel = nullptr; Control *wheel = nullptr;
Control *wheel_uv = nullptr; Control *wheel_uv = nullptr;
@@ -206,7 +205,6 @@ class ColorPickerShapeCircle : public ColorPickerShape {
GDCLASS(ColorPickerShapeCircle, ColorPickerShape); GDCLASS(ColorPickerShapeCircle, ColorPickerShape);
protected: protected:
MarginContainer *circle_margin = nullptr;
Control *circle = nullptr; Control *circle = nullptr;
Control *circle_overlay = nullptr; Control *circle_overlay = nullptr;
Control *value_slider = nullptr; Control *value_slider = nullptr;