summaryrefslogtreecommitdiffstats
path: root/scene/gui/line_edit.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'scene/gui/line_edit.cpp')
-rw-r--r--scene/gui/line_edit.cpp41
1 files changed, 22 insertions, 19 deletions
diff --git a/scene/gui/line_edit.cpp b/scene/gui/line_edit.cpp
index 72a84e4884..d707a98e14 100644
--- a/scene/gui/line_edit.cpp
+++ b/scene/gui/line_edit.cpp
@@ -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);
@@ -2133,6 +2133,9 @@ PopupMenu *LineEdit::get_menu() const {
void LineEdit::_editor_settings_changed() {
#ifdef TOOLS_ENABLED
+ if (!EditorSettings::get_singleton()->check_changed_settings_in_group("text_editor/appearance/caret")) {
+ return;
+ }
set_caret_blink_enabled(EDITOR_GET("text_editor/appearance/caret/caret_blink"));
set_caret_blink_interval(EDITOR_GET("text_editor/appearance/caret/caret_blink_interval"));
#endif
@@ -2279,8 +2282,8 @@ void LineEdit::_emit_text_change() {
emit_signal(SNAME("text_changed"), text);
text_changed_dirty = false;
}
-Array LineEdit::get_configuration_warnings() const {
- Array warnings = Control::get_configuration_warnings();
+PackedStringArray LineEdit::get_configuration_warnings() const {
+ PackedStringArray warnings = Control::get_configuration_warnings();
if (secret_character.length() > 1) {
warnings.push_back("Secret Character property supports only one character. Extra characters will be ignored.");
}