Merge pull request #26809 from KoBeWi/undo_set_text_like_a_boss

Allow to undo TextEdit.set_text
This commit is contained in:
Rémi Verschelde 2019-05-20 22:00:39 +02:00 committed by GitHub
commit fdea3d48b0
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 16 additions and 13 deletions

View file

@ -376,7 +376,6 @@ void ScriptTextEditor::reload_text() {
int v = te->get_v_scroll();
te->set_text(script->get_source_code());
te->clear_undo_history();
te->cursor_set_line(row);
te->cursor_set_column(column);
te->set_h_scroll(h);

View file

@ -202,7 +202,6 @@ void TextEditor::reload_text() {
int v = te->get_v_scroll();
te->set_text(text_file->get_text());
te->clear_undo_history();
te->cursor_set_line(row);
te->cursor_set_column(column);
te->set_h_scroll(h);

View file

@ -4303,17 +4303,22 @@ Control::CursorShape TextEdit::get_cursor_shape(const Point2 &p_pos) const {
void TextEdit::set_text(String p_text) {
setting_text = true;
_clear();
_insert_text_at_cursor(p_text);
clear_undo_history();
cursor.column = 0;
cursor.line = 0;
cursor.x_ofs = 0;
cursor.line_ofs = 0;
cursor.wrap_ofs = 0;
cursor.last_fit_x = 0;
cursor_set_line(0);
cursor_set_column(0);
if (!undo_enabled) {
_clear();
_insert_text_at_cursor(p_text);
}
if (undo_enabled) {
cursor_set_line(0);
cursor_set_column(0);
begin_complex_operation();
_remove_text(0, 0, MAX(0, get_line_count() - 1), MAX(get_line(MAX(get_line_count() - 1, 0)).size() - 1, 0));
_insert_text_at_cursor(p_text);
end_complex_operation();
selection.active = false;
}
update();
setting_text = false;