diff --git a/scene/gui/line_edit.cpp b/scene/gui/line_edit.cpp index f087ba3c0bd..528d25a3f24 100644 --- a/scene/gui/line_edit.cpp +++ b/scene/gui/line_edit.cpp @@ -503,7 +503,7 @@ void LineEdit::gui_input(const Ref &p_event) { last_dblclk_pos = b->get_position(); PackedInt32Array words = TS->shaped_text_get_word_breaks(text_rid); for (int i = 0; i < words.size(); i = i + 2) { - if ((words[i] < caret_column && words[i + 1] > caret_column) || (i == words.size() - 2 && caret_column == words[i + 1])) { + if (words[i] <= caret_column && words[i + 1] >= caret_column) { selection.enabled = true; selection.begin = words[i]; selection.end = words[i + 1]; @@ -597,10 +597,10 @@ void LineEdit::gui_input(const Ref &p_event) { PackedInt32Array words = TS->shaped_text_get_word_breaks(text_rid); for (int i = 0; i < words.size(); i = i + 2) { - if ((words[i] < selection.begin && words[i + 1] > selection.begin) || (i == words.size() - 2 && selection.begin == words[i + 1])) { + if (words[i] <= selection.begin && words[i + 1] >= selection.begin) { selection.begin = words[i]; } - if ((words[i] < selection.end && words[i + 1] > selection.end) || (i == words.size() - 2 && selection.end == words[i + 1])) { + if (words[i] <= selection.end && words[i + 1] >= selection.end) { selection.end = words[i + 1]; selection.enabled = true; break;