diff options
| author | Koala <koalasintraffic@gmail.com> | 2021-04-25 20:59:37 +0100 | 
|---|---|---|
| committer | Koala <koalasintraffic@gmail.com> | 2021-04-25 22:31:29 +0100 | 
| commit | 2c64008718ecb92b464e71b0981163068b52a74c (patch) | |
| tree | 63e54c22fb68a0ad68c673d5d2d7cf33472cb2fb | |
| parent | 15a85fe9713668f8ba6143352fd27d419a96ba83 (diff) | |
Fix indent left line selection
| -rw-r--r-- | scene/gui/text_edit.cpp | 16 | 
1 files changed, 12 insertions, 4 deletions
diff --git a/scene/gui/text_edit.cpp b/scene/gui/text_edit.cpp index 4f508423b3..0713df9955 100644 --- a/scene/gui/text_edit.cpp +++ b/scene/gui/text_edit.cpp @@ -2054,6 +2054,7 @@ void TextEdit::indent_selected_lines_left() {  	if (is_selection_active() && get_selection_to_column() == 0) {  		end_line--;  	} +	String first_line_text = get_line(start_line);  	String last_line_text = get_line(end_line);  	for (int i = start_line; i <= end_line; i++) { @@ -2078,10 +2079,17 @@ void TextEdit::indent_selected_lines_left() {  		}  	} -	// Fix selection and cursor being off by one on the last line. -	if (is_selection_active() && last_line_text != get_line(end_line)) { -		select(selection.from_line, selection.from_column - removed_characters, -				selection.to_line, initial_selection_end_column - removed_characters); +	if (is_selection_active()) { +		// Fix selection being off by one on the first line. +		if (first_line_text != get_line(start_line)) { +			select(selection.from_line, selection.from_column - removed_characters, +					selection.to_line, initial_selection_end_column); +		} +		// Fix selection being off by one on the last line. +		if (last_line_text != get_line(end_line)) { +			select(selection.from_line, selection.from_column, +					selection.to_line, initial_selection_end_column - removed_characters); +		}  	}  	cursor_set_column(initial_cursor_column - removed_characters, false);  	end_complex_operation();  |