Browse Source

Merge pull request #67079 from timothyqiu/main-caret

Don't allow removing `TextEdit`'s main caret
Rémi Verschelde 2 years ago
parent
commit
1c3a63a970
2 changed files with 6 additions and 1 deletions
  1. 1 1
      scene/gui/text_edit.cpp
  2. 5 0
      tests/scene/test_text_edit.h

+ 1 - 1
scene/gui/text_edit.cpp

@@ -4380,7 +4380,7 @@ int TextEdit::add_caret(int p_line, int p_col) {
 }
 
 void TextEdit::remove_caret(int p_caret) {
-	ERR_FAIL_COND(carets.size() <= 0);
+	ERR_FAIL_COND_MSG(carets.size() <= 1, "The main caret should not be removed.");
 	ERR_FAIL_INDEX(p_caret, carets.size());
 	carets.remove_at(p_caret);
 	caret_index_edit_dirty = true;

+ 5 - 0
tests/scene/test_text_edit.h

@@ -3321,6 +3321,11 @@ TEST_CASE("[SceneTree][TextEdit] muiticaret") {
 		CHECK(text_edit->get_caret_count() == 1);
 		CHECK(text_edit->get_caret_line(0) == 0);
 		CHECK(text_edit->get_caret_column(0) == 1);
+
+		ERR_PRINT_OFF;
+		text_edit->remove_caret(0);
+		CHECK(text_edit->get_caret_count() == 1);
+		ERR_PRINT_ON;
 	}
 
 	SUBCASE("[TextEdit] caret index edit order") {