1
0
mirror of https://github.com/godotengine/godot.git synced 2026-01-05 19:31:35 +00:00

Inspect SceneTree node when anything is dragged over

This commit is contained in:
dugramen
2025-03-06 17:51:51 -05:00
parent 134da37497
commit 672b2d4f22

View File

@@ -88,8 +88,12 @@ static void _restore_treeitem_custom_color(TreeItem *p_item) {
}
void SceneTreeDock::_inspect_hovered_node() {
select_node_hovered_at_end_of_drag = true;
Tree *tree = scene_tree->get_scene_tree();
if (!tree->get_rect().has_point(tree->get_local_mouse_position())) {
return;
}
select_node_hovered_at_end_of_drag = true;
TreeItem *item = tree->get_item_with_metadata(node_hovered_now->get_path());
_restore_treeitem_custom_color(tree_item_inspected);
@@ -150,7 +154,14 @@ void SceneTreeDock::input(const Ref<InputEvent> &p_event) {
}
}
if (tree_clicked && get_viewport()->gui_is_dragging()) {
Ref<InputEventMouseMotion> mm = p_event;
bool tree_hovered = false;
if (mm.is_valid()) {
Tree *tree = scene_tree->get_scene_tree();
tree_hovered = tree->get_rect().has_point(tree->get_local_mouse_position());
}
if ((tree_clicked || tree_hovered) && get_viewport()->gui_is_dragging()) {
_handle_hover_to_inspect();
}
}
@@ -4775,6 +4786,7 @@ SceneTreeDock::SceneTreeDock(Node *p_scene_root, EditorSelection *p_editor_selec
inspect_hovered_node_delay = memnew(Timer);
inspect_hovered_node_delay->connect("timeout", callable_mp(this, &SceneTreeDock::_inspect_hovered_node));
inspect_hovered_node_delay->set_wait_time(.5);
inspect_hovered_node_delay->set_one_shot(true);
add_child(inspect_hovered_node_delay);