From 94e90b05934628b29678f246c23101fff17cac86 Mon Sep 17 00:00:00 2001 From: kobewi Date: Mon, 20 Mar 2023 00:38:00 +0100 Subject: [PATCH] Fix get_drag_data not overridable in some Controls (cherry picked from commit 36141dc469baaf027e753718598b32c15fe7c541) --- scene/gui/line_edit.cpp | 5 +++++ scene/gui/rich_text_label.cpp | 5 +++++ scene/gui/text_edit.cpp | 5 +++++ 3 files changed, 15 insertions(+) diff --git a/scene/gui/line_edit.cpp b/scene/gui/line_edit.cpp index fa0f93d12f9..6b2faf1a400 100644 --- a/scene/gui/line_edit.cpp +++ b/scene/gui/line_edit.cpp @@ -638,6 +638,11 @@ HorizontalAlignment LineEdit::get_horizontal_alignment() const { } Variant LineEdit::get_drag_data(const Point2 &p_point) { + Variant ret = Control::get_drag_data(p_point); + if (ret != Variant()) { + return ret; + } + if (selection.drag_attempt && selection.enabled) { String t = text.substr(selection.begin, selection.end - selection.begin); Label *l = memnew(Label); diff --git a/scene/gui/rich_text_label.cpp b/scene/gui/rich_text_label.cpp index ec1fbb7e282..68e12b9bb59 100644 --- a/scene/gui/rich_text_label.cpp +++ b/scene/gui/rich_text_label.cpp @@ -4735,6 +4735,11 @@ void RichTextLabel::set_deselect_on_focus_loss_enabled(const bool p_enabled) { } Variant RichTextLabel::get_drag_data(const Point2 &p_point) { + Variant ret = Control::get_drag_data(p_point); + if (ret != Variant()) { + return ret; + } + if (selection.drag_attempt && selection.enabled) { String t = get_selected_text(); Label *l = memnew(Label); diff --git a/scene/gui/text_edit.cpp b/scene/gui/text_edit.cpp index f8a13455761..30bac0f58cf 100644 --- a/scene/gui/text_edit.cpp +++ b/scene/gui/text_edit.cpp @@ -3035,6 +3035,11 @@ bool TextEdit::is_text_field() const { } Variant TextEdit::get_drag_data(const Point2 &p_point) { + Variant ret = Control::get_drag_data(p_point); + if (ret != Variant()) { + return ret; + } + if (has_selection() && selection_drag_attempt) { String t = get_selected_text(); Label *l = memnew(Label);