diff options
| author | marynate | 2014-05-11 12:14:33 +0800 |
|---|---|---|
| committer | marynate | 2014-05-11 12:16:08 +0800 |
| commit | 8090a4ebb1c1c7a970f57b46d1df526bf12c2c37 (patch) | |
| tree | 52a4bb13c7f0855e3dcdcc4d28324023d25b5895 | |
| parent | 10246920418110ccb006d538490e098b1ec2a413 (diff) | |
| download | godot-8090a4ebb1c1c7a970f57b46d1df526bf12c2c37.tar.gz godot-8090a4ebb1c1c7a970f57b46d1df526bf12c2c37.tar.zst godot-8090a4ebb1c1c7a970f57b46d1df526bf12c2c37.zip | |
Fix LineEdit selected text drag and drop behavior: move instead of duplicate selected text; maintain selection after drag and drop.
| -rw-r--r-- | scene/gui/line_edit.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/scene/gui/line_edit.cpp b/scene/gui/line_edit.cpp index 6c9db7484..e822cfef1 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; } } |
