From 8090a4ebb1c1c7a970f57b46d1df526bf12c2c37 Mon Sep 17 00:00:00 2001 From: marynate Date: Sun, 11 May 2014 12:14:33 +0800 Subject: [PATCH] Fix LineEdit selected text drag and drop behavior: move instead of duplicate selected text; maintain selection after drag and drop. --- scene/gui/line_edit.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/scene/gui/line_edit.cpp b/scene/gui/line_edit.cpp index 6c9db7484b..e822cfef13 100644 --- a/scene/gui/line_edit.cpp +++ b/scene/gui/line_edit.cpp @@ -323,9 +323,12 @@ bool LineEdit::can_drop_data(const Point2& p_point,const Variant& p_data) const{ void LineEdit::drop_data(const Point2& p_point,const Variant& p_data){ if (p_data.get_type()==Variant::STRING) { - set_cursor_at_pixel_pos(p_point.x); + int selected = selection.end - selection.begin; + text.erase(selection.begin, selected); append_at_cursor(p_data); + selection.begin = cursor_pos-selected; + selection.end = cursor_pos; } }