소스 검색

Fix empty LineEdit crash on ctrl+backspace

Paulb23 5 년 전
부모
커밋
22c15083af
1개의 변경된 파일2개의 추가작업 그리고 2개의 파일을 삭제
  1. 2 2
      scene/gui/line_edit.cpp

+ 2 - 2
scene/gui/line_edit.cpp

@@ -1193,7 +1193,7 @@ void LineEdit::delete_char() {
 	set_cursor_position(get_cursor_position() - 1);
 	set_cursor_position(get_cursor_position() - 1);
 
 
 	if (align == ALIGN_CENTER || align == ALIGN_RIGHT) {
 	if (align == ALIGN_CENTER || align == ALIGN_RIGHT) {
-		window_pos = CLAMP(window_pos - 1, 0, text.length() - 1);
+		window_pos = CLAMP(window_pos - 1, 0, MAX(text.length() - 1, 0));
 	}
 	}
 
 
 	_text_changed();
 	_text_changed();
@@ -1224,7 +1224,7 @@ void LineEdit::delete_text(int p_from_column, int p_to_column) {
 	}
 	}
 
 
 	if (align == ALIGN_CENTER || align == ALIGN_RIGHT) {
 	if (align == ALIGN_CENTER || align == ALIGN_RIGHT) {
-		window_pos = CLAMP(window_pos - (p_to_column - p_from_column), 0, text.length() - 1);
+		window_pos = CLAMP(window_pos - (p_to_column - p_from_column), 0, MAX(text.length() - 1, 0));
 	}
 	}
 
 
 	if (!text_changed_dirty) {
 	if (!text_changed_dirty) {