### 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
Rect2 rect_new;
	if (display_old_color) {
		rect_new = Rect2(Point2(sample->get_size().width * 0.5, 0), Size2(sample->get_size().width * 0.5, sample->get_size().height * 0.95));
		
		const Rect2 rect_old = Rect2(Point2(), Size2(sample->get_size().width * 0.5, sample->get_size().height * 0.95));
		if (old_color.a < 1.0) {
			sample->draw_texture_rect(theme_cache.sample_background_icon, rect_old, true);
		}
		sample->draw_rect(rect_old, old_color);
		if (old_color.r > 1 || old_color.g > 1 || old_color.b > 1) {
			
			sample->draw_texture(theme_cache.overbright_indicator, Point2());
		}
	} else {
		rect_new = Rect2(Point2(), Size2(sample->get_size().width, sample->get_size().height * 0.95));
	}
	if (color.a < 1.0) {
		sample->draw_texture_rect(theme_cache.sample_background_icon, rect_new, true);
	}
	sample->draw_rect(rect_new, color);
	if (color.r > 1 || color.g > 1 || color.b > 1) {
		
		sample->draw_texture(theme_cache.overbright_indicator, Point2(uv_edit->get_size().width * 0.5, 0));
	}
}
void ColorPicker::_hsv_draw(int p_which, Control *c) {