Преглед изворни кода

Fix get_drag_data not overridable in some Controls

kobewi пре 2 година
родитељ
комит
36141dc469
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);