Kaynağa Gözat

Allow to override drop data in LineEdit

(cherry picked from commit a3a31591b53da6a79f37760d0e7ee34d6d4e4ee6)
kobewi 4 yıl önce
ebeveyn
işleme
7ede2f36fe
2 değiştirilmiş dosya ile 8 ekleme ve 1 silme
  1. 1 1
      scene/gui/control.cpp
  2. 7 0
      scene/gui/line_edit.cpp

+ 1 - 1
scene/gui/control.cpp

@@ -754,7 +754,7 @@ bool Control::can_drop_data(const Point2 &p_point, const Variant &p_data) const
 			return ret;
 	}
 
-	return Variant();
+	return false;
 }
 void Control::drop_data(const Point2 &p_point, const Variant &p_data) {
 

+ 7 - 0
scene/gui/line_edit.cpp

@@ -611,11 +611,18 @@ Variant LineEdit::get_drag_data(const Point2 &p_point) {
 
 	return Variant();
 }
+
 bool LineEdit::can_drop_data(const Point2 &p_point, const Variant &p_data) const {
+	bool drop_override = Control::can_drop_data(p_point, p_data); // In case user wants to drop custom data.
+	if (drop_override) {
+		return drop_override;
+	}
 
 	return p_data.get_type() == Variant::STRING;
 }
+
 void LineEdit::drop_data(const Point2 &p_point, const Variant &p_data) {
+	Control::drop_data(p_point, p_data);
 
 	if (p_data.get_type() == Variant::STRING) {
 		set_cursor_at_pixel_pos(p_point.x);