diff --git a/editor/animation_track_editor.cpp b/editor/animation_track_editor.cpp index 3aa3aa567b6..ce9114a5c1b 100644 --- a/editor/animation_track_editor.cpp +++ b/editor/animation_track_editor.cpp @@ -3244,6 +3244,22 @@ void AnimationTrackEditGroup::_notification(int p_what) { } } +void AnimationTrackEditGroup::gui_input(const Ref &p_event) { + ERR_FAIL_COND(p_event.is_null()); + + Ref mb = p_event; + if (mb.is_valid() && mb->is_pressed() && mb->get_button_index() == MouseButton::LEFT) { + Point2 pos = mb->get_position(); + Rect2 node_name_rect = Rect2(0, 0, timeline->get_name_limit(), get_size().height); + + if (node_name_rect.has_point(pos)) { + EditorSelection *editor_selection = EditorNode::get_singleton()->get_editor_selection(); + editor_selection->clear(); + editor_selection->add_node(root->get_node(node)); + } + } +} + void AnimationTrackEditGroup::set_type_and_name(const Ref &p_type, const String &p_name, const NodePath &p_node) { icon = p_type; node_name = p_name; diff --git a/editor/animation_track_editor.h b/editor/animation_track_editor.h index cef726f6c01..f7ee229c75c 100644 --- a/editor/animation_track_editor.h +++ b/editor/animation_track_editor.h @@ -349,6 +349,8 @@ class AnimationTrackEditGroup : public Control { protected: void _notification(int p_what); + virtual void gui_input(const Ref &p_event) override; + public: void set_type_and_name(const Ref &p_type, const String &p_name, const NodePath &p_node); virtual Size2 get_minimum_size() const override;