### Godot version

v4.2.dev2.mono.official 

### System information

Godot v4.2.dev2.mono - Windows 10.0.22621 - GLES3 (Compatibility) - NVIDIA GeForce RTX 3060 (NVIDIA; 31.0.15.3179) - Intel(R) Core(TM) i7-10700F CPU @ 2.90GHz (16 Threads)

### Issue description

When making a change on a TileSet, the TileSet tab will close, so you have to reopen it to continue doing what you want to do.

https://github.com/godotengine/godot/assets/88297220/b9f727d8-3ced-404a-9eb0-06f22c66bb99



### Steps to reproduce

1. Add a TileMap
2. Assign a TileSet to the TileMap
3. Add a new layer or make a change to the TileSet.

### Minimal reproduction project

N/A
Vector2 scale = thumbnail_size2 / MAX(encompassing_rect.size.x, encompassing_rect.size.y);
				tile_map->set_scale(scale);
				tile_map->set_position(-(scale * encompassing_rect.get_center()) + thumbnail_size2 / 2);
				
				EditorNode::get_singleton()->call_deferred("add_child", viewport);
				RS::get_singleton()->connect(SNAME("frame_pre_draw"), callable_mp(const_cast<TilesEditorUtils *>(this), &TilesEditorUtils::_preview_frame_started), Object::CONNECT_ONE_SHOT);
				pattern_preview_done.wait();
				Ref<Image> image = viewport->get_texture()->get_image();
				
				Variant args[] = { item.pattern, ImageTexture::create_from_image(image) };
				const Variant *args_ptr[] = { &args[0], &args[1] };
				Variant r;
				Callable::CallError error;
				item.callback.callp(args_ptr, 2, r, error);
				viewport->queue_free();
			}
		}
	}
	pattern_thread_exited.set();
}
void TilesEditorUtils::queue_pattern_preview(Ref<TileSet> p_tile_set, Ref<TileMapPattern> p_pattern, Callable p_callback) {
	ERR_FAIL_COND(!p_tile_set.is_valid());
	ERR_FAIL_COND(!p_pattern.is_valid());
	{
		MutexLock lock(pattern_preview_mutex);
		pattern_preview_queue.push_back({ p_tile_set, p_pattern, p_callback });
	}
	pattern_preview_sem.post();
}
void TilesEditorUtils::set_sources_lists_current(int p_current) {