### Godot version

4.0 rc6

### System information

win 11

### Issue description

UV tab

![image](https://user-images.githubusercontent.com/69117768/221976102-1b61dc27-d104-447c-9baf-bfe82c1e1790.png)

other tabs

![image](https://user-images.githubusercontent.com/69117768/221976126-09e32e2c-f63d-4728-ac56-e50d65b3ef1e.png)


### Steps to reproduce

make a polygon from a sprite

### Minimal reproduction project

n/A
real_t scale = to_dist / from_dist;
					for (int i = 0; i < uv_new.size(); i++) {
						Vector2 rel = points_prev[i] - center;
						rel = rel * scale;
						uv_new.set(i, center + rel);
					}
					if (uv_edit_mode[0]->is_pressed()) { /
						node->set_uv(uv_new);
					} else if (uv_edit_mode[1]->is_pressed()) { /
						node->set_polygon(uv_new);
					}
				} break;
				case UV_MODE_PAINT_WEIGHT:
				case UV_MODE_CLEAR_WEIGHT: {
					bone_paint_pos = mm->get_position();
				} break;
				default: {
				}
			}
			if (bone_painting) {
				Vector<float> painted_weights = node->get_bone_weights(bone_painting_bone);
				{
					int pc = painted_weights.size();
					real_t amount = bone_paint_strength->get_value();
					real_t radius = bone_paint_radius->get_value() * EDSCALE;
					if (uv_mode == UV_MODE_CLEAR_WEIGHT) {
						amount = -amount;
					}
					float *w = painted_weights.ptrw();
					const float *r = prev_weights.ptr();