Fix selection of remote tree using the keyboard

(cherry picked from commit 53231879b3)
This commit is contained in:
Michael Alexsander 2025-09-20 20:11:59 -03:00 committed by Rémi Verschelde
parent 90d1d9e957
commit 632d29232b
No known key found for this signature in database
GPG key ID: C3336907360768E1
2 changed files with 23 additions and 0 deletions

View file

@ -66,6 +66,7 @@ void EditorDebuggerTree::_notification(int p_what) {
case NOTIFICATION_POSTINITIALIZE: {
set_auto_translate_mode(AUTO_TRANSLATE_MODE_DISABLED);
connect("cell_selected", callable_mp(this, &EditorDebuggerTree::_scene_tree_selected));
connect("multi_selected", callable_mp(this, &EditorDebuggerTree::_scene_tree_selection_changed));
connect("nothing_selected", callable_mp(this, &EditorDebuggerTree::_scene_tree_nothing_selected));
connect("item_collapsed", callable_mp(this, &EditorDebuggerTree::_scene_tree_folded));
@ -85,6 +86,27 @@ void EditorDebuggerTree::_bind_methods() {
ADD_SIGNAL(MethodInfo("open"));
}
void EditorDebuggerTree::_scene_tree_selected() {
TreeItem *item = get_selected();
if (!item) {
return;
}
if (!inspected_object_ids.is_empty()) {
inspected_object_ids.clear();
deselect_all();
item->select(0);
}
uint64_t id = uint64_t(item->get_metadata(0));
inspected_object_ids.append(id);
if (!notify_selection_queued) {
callable_mp(this, &EditorDebuggerTree::_notify_selection_changed).call_deferred();
notify_selection_queued = true;
}
}
void EditorDebuggerTree::_scene_tree_selection_changed(TreeItem *p_item, int p_column, bool p_selected) {
if (updating_scene_tree || !p_item) {
return;

View file

@ -72,6 +72,7 @@ private:
String last_filter;
void _scene_tree_folded(Object *p_obj);
void _scene_tree_selected();
void _scene_tree_selection_changed(TreeItem *p_item, int p_column, bool p_selected);
void _scene_tree_nothing_selected();
void _notify_selection_changed();