|
@@ -4126,6 +4126,8 @@ void Tree::gui_input(const Ref<InputEvent> &p_event) {
|
|
|
}
|
|
|
|
|
|
void Tree::_determine_hovered_item() {
|
|
|
+ hovered_update_queued = false;
|
|
|
+
|
|
|
Ref<StyleBox> bg = theme_cache.panel_style;
|
|
|
bool rtl = is_layout_rtl();
|
|
|
|
|
@@ -4213,6 +4215,14 @@ void Tree::_determine_hovered_item() {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+void Tree::_queue_update_hovered_item() {
|
|
|
+ if (hovered_update_queued) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ hovered_update_queued = true;
|
|
|
+ callable_mp(this, &Tree::_determine_hovered_item).call_deferred();
|
|
|
+}
|
|
|
+
|
|
|
bool Tree::edit_selected(bool p_force_edit) {
|
|
|
TreeItem *s = get_selected();
|
|
|
ERR_FAIL_NULL_V_MSG(s, false, "No item selected.");
|
|
@@ -5046,9 +5056,7 @@ TreeItem *Tree::create_item(TreeItem *p_parent, int p_index) {
|
|
|
ti = create_item(root, p_index);
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
- _determine_hovered_item();
|
|
|
-
|
|
|
+ _queue_update_hovered_item();
|
|
|
queue_accessibility_update();
|
|
|
return ti;
|
|
|
}
|