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

switch (p_what) {
		case NOTIFICATION_RESIZED: {
			shape_changed = true;
			queue_redraw();
		} break;
		case NOTIFICATION_LAYOUT_DIRECTION_CHANGED:
		case NOTIFICATION_TRANSLATION_CHANGED:
		case NOTIFICATION_THEME_CHANGED: {
			for (int i = 0; i < items.size(); i++) {
				_shape_text(i);
			}
			shape_changed = true;
			queue_redraw();
		} break;
		case NOTIFICATION_DRAW: {
			_check_shape_changed();
			int scroll_bar_minwidth = scroll_bar->get_minimum_size().x;
			scroll_bar->set_anchor_and_offset(SIDE_LEFT, ANCHOR_END, -scroll_bar_minwidth);
			scroll_bar->set_anchor_and_offset(SIDE_RIGHT, ANCHOR_END, 0);
			scroll_bar->set_anchor_and_offset(SIDE_TOP, ANCHOR_BEGIN, theme_cache.panel_style->get_margin(SIDE_TOP));
			scroll_bar->set_anchor_and_offset(SIDE_BOTTOM, ANCHOR_END, -theme_cache.panel_style->get_margin(SIDE_BOTTOM));
			Size2 size = get_size();
			int width = size.width - theme_cache.panel_style->get_minimum_size().width;