### 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)

Vector2 pos = p_pos;
	pos -= theme_cache.panel_style->get_offset();
	pos.y += scroll_bar->get_value();
	if (is_layout_rtl()) {
		pos.x = get_size().width - pos.x;
	}
	int closest = -1;
	int closest_dist = 0x7FFFFFFF;
	for (int i = 0; i < items.size(); i++) {
		Rect2 rc = items[i].rect_cache;
		if (i % current_columns == current_columns - 1) {
			rc.size.width = get_size().width - rc.position.x; 
		}
		if (rc.has_point(pos)) {
			closest = i;
			break;
		}
		float dist = rc.distance_to(pos);
		if (!p_exact && dist < closest_dist) {
			closest = i;
			closest_dist = dist;
		}
	}
	return closest;
}
bool ItemList::is_pos_at_end_of_items(const Point2 &p_pos) const {