1
0
mirror of https://github.com/godotengine/godot.git synced 2026-01-04 19:21:46 +00:00

Fix LineEdit delete all the way to the left/right when something is selected

This commit is contained in:
passivestar
2024-02-18 11:58:37 +04:00
parent 8f0c20ee8d
commit c2a4a0d4cb

View File

@@ -138,8 +138,16 @@ void LineEdit::_backspace(bool p_word, bool p_all_to_left) {
return;
}
if (selection.enabled) {
selection_delete();
return;
}
if (caret_column == 0) {
return; // Nothing to do.
}
if (p_all_to_left) {
deselect();
text = text.substr(caret_column);
_shape();
set_caret_column(0);
@@ -147,11 +155,6 @@ void LineEdit::_backspace(bool p_word, bool p_all_to_left) {
return;
}
if (selection.enabled) {
selection_delete();
return;
}
if (p_word) {
int cc = caret_column;
@@ -176,25 +179,22 @@ void LineEdit::_delete(bool p_word, bool p_all_to_right) {
return;
}
if (p_all_to_right) {
deselect();
text = text.substr(0, caret_column);
_shape();
_text_changed();
return;
}
if (selection.enabled) {
selection_delete();
return;
}
int text_len = text.length();
if (caret_column == text_len) {
if (caret_column == text.length()) {
return; // Nothing to do.
}
if (p_all_to_right) {
text = text.substr(0, caret_column);
_shape();
_text_changed();
return;
}
if (p_word) {
int cc = caret_column;
PackedInt32Array words = TS->shaped_text_get_word_breaks(text_rid);