### Godot version

4.0.2

### System information

Ubuntu 22.04.1 LTS

### Issue description

![image](https://github.com/godotengine/godot/assets/85438892/4bd89bb0-f4d9-4aa9-8846-0a728e97e1bc)

Notice how the hue is on the blue color, but the saturation is insists on remaining red.

If I change the saturation a little bit, the correct value will apply. But if I adjust the value or the alpha, the blue hue will be punched out and become red again.

### Steps to reproduce

Go to a ColorPicker in the editor (say, the modulate property of Node2D), open the color picker, and copy the above configuration in the HSV tab.

### Minimal reproduction project

N/A
sb_flat->set_bg_color(Color(1, 1, 1));
					sb_flat->draw(get_canvas_item(), r);
					Rect2 bg_texture_rect = r.grow_side(SIDE_LEFT, -sb_flat->get_margin(SIDE_LEFT));
					bg_texture_rect = bg_texture_rect.grow_side(SIDE_RIGHT, -sb_flat->get_margin(SIDE_RIGHT));
					bg_texture_rect = bg_texture_rect.grow_side(SIDE_TOP, -sb_flat->get_margin(SIDE_TOP));
					bg_texture_rect = bg_texture_rect.grow_side(SIDE_BOTTOM, -sb_flat->get_margin(SIDE_BOTTOM));
					draw_texture_rect(theme_cache.background_icon, bg_texture_rect, true);
					sb_flat->set_bg_color(preset_color);
				}
				sb_flat->set_bg_color(preset_color);
				sb_flat->draw(get_canvas_item(), r);
			} else if (sb_texture.is_valid()) {
				if (preset_color.a < 1) {
					
					bool use_tile_texture = (sb_texture->get_h_axis_stretch_mode() == StyleBoxTexture::AxisStretchMode::AXIS_STRETCH_MODE_TILE) || (sb_texture->get_h_axis_stretch_mode() == StyleBoxTexture::AxisStretchMode::AXIS_STRETCH_MODE_TILE_FIT);
					draw_texture_rect(theme_cache.background_icon, r, use_tile_texture);
				}
				sb_texture->set_modulate(preset_color);
				sb_texture->draw(get_canvas_item(), r);
			} else {
				WARN_PRINT("Unsupported StyleBox used for ColorPresetButton. Use StyleBoxFlat or StyleBoxTexture instead.");
			}
			if (preset_color.r > 1 || preset_color.g > 1 || preset_color.b > 1) {
				
				draw_texture(theme_cache.overbright_indicator, Vector2(0, 0));
			}
		} break;
	}
}
void ColorPresetButton::_update_theme_item_cache() {