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

if (scroll_bar->is_visible()) {
				width -= scroll_bar_minwidth;
			}
			draw_style_box(theme_cache.panel_style, Rect2(Point2(), size));
			Ref<StyleBox> sbsel;
			Ref<StyleBox> cursor;
			if (has_focus()) {
				sbsel = theme_cache.selected_focus_style;
				cursor = theme_cache.cursor_focus_style;
			} else {
				sbsel = theme_cache.selected_style;
				cursor = theme_cache.cursor_style;
			}
			bool rtl = is_layout_rtl();
			if (has_focus()) {
				RenderingServer::get_singleton()->canvas_item_add_clip_ignore(get_canvas_item(), true);
				draw_style_box(theme_cache.focus_style, Rect2(Point2(), size));
				RenderingServer::get_singleton()->canvas_item_add_clip_ignore(get_canvas_item(), false);
			}
			
			if (ensure_selected_visible && current >= 0 && current < items.size()) {
				Rect2 r = items[current].rect_cache;
				int from = scroll_bar->get_value();
				int to = from + scroll_bar->get_page();
				if (r.position.y < from) {
					scroll_bar->set_value(r.position.y);
				} else if (r.position.y + r.size.y > to) {
					scroll_bar->set_value(r.position.y + r.size.y - (to - from));
				}
			}