浏览代码

Merge pull request #75122 from KoBeWi/get_drug_data

Fix get_drag_data not overridable in some Controls
Yuri Sizov 2 年之前
父节点
当前提交
f3d1cc39a2
共有 3 个文件被更改,包括 15 次插入0 次删除
  1. 5 0
      scene/gui/line_edit.cpp
  2. 5 0
      scene/gui/rich_text_label.cpp
  3. 5 0
      scene/gui/text_edit.cpp

+ 5 - 0
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);

+ 5 - 0
scene/gui/rich_text_label.cpp

@@ -4741,6 +4741,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);

+ 5 - 0
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);