### Godot version

v4.0.stable.official [92bee43ad]

### System information

Windows 10, 64bit

### Issue description

When change `ItemList`‘s icon_scale with code, itemlist not update:
![GIF](https://user-images.githubusercontent.com/35988767/222378909-ff9828aa-6714-478a-abbe-55477f28d85d.gif)

And force call `queue_redraw()`, icon size was udpate, but item border not.
![GIF](https://user-images.githubusercontent.com/35988767/222379478-832c7668-5182-4e1e-bfdb-cc137c19f77a.gif)

And if resize window, itemlist update correct.
![GIF](https://user-images.githubusercontent.com/35988767/222381049-3a45383d-9a40-4598-b64d-ec10d22754d7.gif)


### Steps to reproduce

/

### Minimal reproduction project

[ItemListTest.zip](https://github.com/godotengine/godot/files/10869385/ItemListTest.zip)

return icon_mode;
}
void ItemList::set_fixed_icon_size(const Size2i &p_size) {
	if (fixed_icon_size == p_size) {
		return;
	}
	fixed_icon_size = p_size;
	queue_redraw();
	shape_changed = true;
}
Size2i ItemList::get_fixed_icon_size() const {
	return fixed_icon_size;
}
Size2 ItemList::Item::get_icon_size() const {
	if (icon.is_null()) {
		return Size2();
	}
	Size2 size_result = Size2(icon_region.size).abs();
	if (icon_region.size.x == 0 || icon_region.size.y == 0) {
		size_result = icon->get_size();
	}
	if (icon_transposed) {
		Size2 size_tmp = size_result;
		size_result.x = size_tmp.y;
		size_result.y = size_tmp.x;
	}
	return size_result;
}
void ItemList::gui_input(const Ref<InputEvent> &p_event) {