diff options
Diffstat (limited to 'scene/gui/text_edit.cpp')
| -rw-r--r-- | scene/gui/text_edit.cpp | 16 | 
1 files changed, 10 insertions, 6 deletions
diff --git a/scene/gui/text_edit.cpp b/scene/gui/text_edit.cpp index acd2950b4c..36d7dad1d3 100644 --- a/scene/gui/text_edit.cpp +++ b/scene/gui/text_edit.cpp @@ -50,7 +50,7 @@ inline bool _is_symbol(CharType c) {  static bool _is_text_char(CharType c) { -	return (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') || (c >= '0' && c <= '9') || c == '_'; +	return !is_symbol(c);  }  static bool _is_whitespace(CharType c) { @@ -406,6 +406,7 @@ void TextEdit::_update_scrollbars() {  		cursor.line_ofs = 0;  		cursor.wrap_ofs = 0;  		v_scroll->set_value(0); +		v_scroll->set_max(0);  		v_scroll->hide();  	} @@ -424,6 +425,7 @@ void TextEdit::_update_scrollbars() {  		cursor.x_ofs = 0;  		h_scroll->set_value(0); +		h_scroll->set_max(0);  		h_scroll->hide();  	} @@ -4076,7 +4078,7 @@ void TextEdit::cursor_set_line(int p_row, bool p_adjust_viewport, bool p_can_be_  	cursor.line = p_row;  	int n_col = get_char_pos_for_line(cursor.last_fit_x, p_row, p_wrap_index); -	if (is_wrap_enabled() && p_wrap_index < times_line_wraps(p_row)) { +	if (n_col != 0 && is_wrap_enabled() && p_wrap_index < times_line_wraps(p_row)) {  		Vector<String> rows = get_wrap_rows_text(p_row);  		int row_end_col = 0;  		for (int i = 0; i < p_wrap_index + 1; i++) { @@ -4167,7 +4169,7 @@ void TextEdit::_scroll_moved(double p_to_val) {  		int v_scroll_i = floor(get_v_scroll());  		int sc = 0;  		int n_line; -		for (n_line = 0; n_line < text.size(); n_line++) { +		for (n_line = 0; n_line < text.size() - 1; n_line++) {  			if (!is_line_hidden(n_line)) {  				sc++;  				sc += times_line_wraps(n_line); @@ -4680,6 +4682,8 @@ bool TextEdit::has_keyword_color(String p_keyword) const {  }  Color TextEdit::get_keyword_color(String p_keyword) const { + +	ERR_FAIL_COND_V(!keywords.has(p_keyword), Color());  	return keywords[p_keyword];  } @@ -5609,7 +5613,7 @@ void TextEdit::undo() {  	TextOperation op = undo_stack_pos->get();  	_do_text_op(op, true); -	if (op.from_line != op.to_line || op.to_column != op.from_column + 1) +	if (op.type != TextOperation::TYPE_INSERT && (op.from_line != op.to_line || op.to_column != op.from_column + 1))  		select(op.from_line, op.from_column, op.to_line, op.to_column);  	current_op.version = op.prev_version; @@ -6340,14 +6344,14 @@ int TextEdit::get_info_gutter_width() const {  	return info_gutter_width;  } -void TextEdit::set_hiding_enabled(int p_enabled) { +void TextEdit::set_hiding_enabled(bool p_enabled) {  	if (!p_enabled)  		unhide_all_lines();  	hiding_enabled = p_enabled;  	update();  } -int TextEdit::is_hiding_enabled() const { +bool TextEdit::is_hiding_enabled() const {  	return hiding_enabled;  }  |