Merge pull request #88479 from passivestar/lineedit-delete-with-selection
Fix `LineEdit` delete all the way to the left/right when something is selected
This commit is contained in:
commit
a92921ae49
1 changed files with 17 additions and 17 deletions
|
@ -138,8 +138,16 @@ void LineEdit::_backspace(bool p_word, bool p_all_to_left) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (selection.enabled) {
|
||||||
|
selection_delete();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (caret_column == 0) {
|
||||||
|
return; // Nothing to do.
|
||||||
|
}
|
||||||
|
|
||||||
if (p_all_to_left) {
|
if (p_all_to_left) {
|
||||||
deselect();
|
|
||||||
text = text.substr(caret_column);
|
text = text.substr(caret_column);
|
||||||
_shape();
|
_shape();
|
||||||
set_caret_column(0);
|
set_caret_column(0);
|
||||||
|
@ -147,11 +155,6 @@ void LineEdit::_backspace(bool p_word, bool p_all_to_left) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (selection.enabled) {
|
|
||||||
selection_delete();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (p_word) {
|
if (p_word) {
|
||||||
int cc = caret_column;
|
int cc = caret_column;
|
||||||
|
|
||||||
|
@ -176,25 +179,22 @@ void LineEdit::_delete(bool p_word, bool p_all_to_right) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (p_all_to_right) {
|
|
||||||
deselect();
|
|
||||||
text = text.substr(0, caret_column);
|
|
||||||
_shape();
|
|
||||||
_text_changed();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (selection.enabled) {
|
if (selection.enabled) {
|
||||||
selection_delete();
|
selection_delete();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
int text_len = text.length();
|
if (caret_column == text.length()) {
|
||||||
|
|
||||||
if (caret_column == text_len) {
|
|
||||||
return; // Nothing to do.
|
return; // Nothing to do.
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (p_all_to_right) {
|
||||||
|
text = text.substr(0, caret_column);
|
||||||
|
_shape();
|
||||||
|
_text_changed();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (p_word) {
|
if (p_word) {
|
||||||
int cc = caret_column;
|
int cc = caret_column;
|
||||||
PackedInt32Array words = TS->shaped_text_get_word_breaks(text_rid);
|
PackedInt32Array words = TS->shaped_text_get_word_breaks(text_rid);
|
||||||
|
|
Loading…
Reference in a new issue