### 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
colors.set(2, col3);
			colors.set(3, col3);
			colors.set(4, col2);
			colors.set(5, col);
			c->draw_polygon(points, colors);
			int y = c->get_size().y - c->get_size().y * CLAMP(v, 0, 1);
			col.set_ok_hsl(h, 1, v);
			c->draw_line(Point2(0, y), Point2(c->get_size().x, y), col.inverted());
		} else if (actual_shape == SHAPE_VHS_CIRCLE) {
			Vector<Point2> points;
			Vector<Color> colors;
			Color col;
			col.set_hsv(h, s, 1);
			points.resize(4);
			colors.resize(4);
			points.set(0, Vector2());
			points.set(1, Vector2(c->get_size().x, 0));
			points.set(2, c->get_size());
			points.set(3, Vector2(0, c->get_size().y));
			colors.set(0, col);
			colors.set(1, col);
			colors.set(2, Color(0, 0, 0));
			colors.set(3, Color(0, 0, 0));
			c->draw_polygon(points, colors);
			int y = c->get_size().y - c->get_size().y * CLAMP(v, 0, 1);
			col.set_hsv(h, 1, v);
			c->draw_line(Point2(0, y), Point2(c->get_size().x, y), col.inverted());
		}
	} else if (p_which == 2) {
		c->draw_rect(Rect2(Point2(), c->get_size()), Color(1, 1, 1));