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

txt_modulate = theme_cache.font_color;
					}
					if (items[i].disabled) {
						txt_modulate.a *= 0.5;
					}
					if (icon_mode == ICON_MODE_TOP && max_text_lines > 0) {
						text_ofs += base_ofs;
						text_ofs += items[i].rect_cache.position;
						if (rtl) {
							text_ofs.x = size.width - text_ofs.x - max_len;
						}
						items.write[i].text_buf->set_alignment(HORIZONTAL_ALIGNMENT_CENTER);
						if (theme_cache.font_outline_size > 0 && theme_cache.font_outline_color.a > 0) {
							items[i].text_buf->draw_outline(get_canvas_item(), text_ofs, theme_cache.font_outline_size, theme_cache.font_outline_color);
						}
						items[i].text_buf->draw(get_canvas_item(), text_ofs, txt_modulate);
					} else {
						if (fixed_column_width > 0) {
							size2.x = MIN(size2.x, fixed_column_width);
						}
						if (icon_mode == ICON_MODE_TOP) {
							text_ofs.x += (items[i].rect_cache.size.width - size2.x) / 2;
						} else {
							text_ofs.y += (items[i].rect_cache.size.height - size2.y) / 2;
						}
						text_ofs += base_ofs;
						text_ofs += items[i].rect_cache.position;
						float text_w = width - text_ofs.x;
						items.write[i].text_buf->set_width(text_w);
						if (rtl) {