Merge pull request #26809 from KoBeWi/undo_set_text_like_a_boss
Allow to undo TextEdit.set_text
This commit is contained in:
commit
fdea3d48b0
3 changed files with 16 additions and 13 deletions
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
Loading…
Reference in a new issue