### Godot version

4.2 dev1

### System information

Windows 10.0.19045 - Vulkan (Forward+) - dedicated NVIDIA GeForce GTX 1060 (NVIDIA; 30.0.15.1403) - Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz (8 Threads)

### Issue description

Calling `Tree.propagate_check()` after an item is unchecked does not properly uncheck the parents. They are left in partially checked state.

It's easy to observe in theme editor:

https://github.com/godotengine/godot/assets/2223172/71d0479c-0a5e-48d3-957f-d90379a95c22



### Steps to reproduce

1. Edit a Theme resource
2. Go to Manage Items... menu
3. Go to Import Items tab
4. Unfold something
5. Check and uncheck a child checkbox

### Minimal reproduction project

N/A
break;
					}
				}
				if (!root || (!root->get_first_child() && hide_root)) {
					break;
				}
				click_handled = false;
				pressing_for_editor = false;
				propagate_mouse_activated = false;
				int x_limit = get_size().width - theme_cache.panel_style->get_minimum_size().width;
				if (v_scroll->is_visible()) {
					x_limit -= v_scroll->get_minimum_size().width;
				}
				cache.rtl = is_layout_rtl();
				blocked++;
				propagate_mouse_event(pos + theme_cache.offset, 0, 0, x_limit + theme_cache.offset.width, mb->is_double_click(), root, mb->get_button_index(), mb);
				blocked--;
				if (pressing_for_editor) {
					pressing_pos = mb->get_position();
					if (rtl) {
						pressing_pos.x = get_size().width - pressing_pos.x;
					}
				}
				if (mb->get_button_index() == MouseButton::RIGHT) {
					break;
				}
				if (drag_touching) {
					set_physics_process_internal(false);
					drag_touching_deaccel = false;
					drag_touching = false;