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();
|
int v = te->get_v_scroll();
|
||||||
|
|
||||||
te->set_text(script->get_source_code());
|
te->set_text(script->get_source_code());
|
||||||
te->clear_undo_history();
|
|
||||||
te->cursor_set_line(row);
|
te->cursor_set_line(row);
|
||||||
te->cursor_set_column(column);
|
te->cursor_set_column(column);
|
||||||
te->set_h_scroll(h);
|
te->set_h_scroll(h);
|
||||||
|
|
|
@ -202,7 +202,6 @@ void TextEditor::reload_text() {
|
||||||
int v = te->get_v_scroll();
|
int v = te->get_v_scroll();
|
||||||
|
|
||||||
te->set_text(text_file->get_text());
|
te->set_text(text_file->get_text());
|
||||||
te->clear_undo_history();
|
|
||||||
te->cursor_set_line(row);
|
te->cursor_set_line(row);
|
||||||
te->cursor_set_column(column);
|
te->cursor_set_column(column);
|
||||||
te->set_h_scroll(h);
|
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) {
|
void TextEdit::set_text(String p_text) {
|
||||||
|
|
||||||
setting_text = true;
|
setting_text = true;
|
||||||
_clear();
|
if (!undo_enabled) {
|
||||||
_insert_text_at_cursor(p_text);
|
_clear();
|
||||||
clear_undo_history();
|
_insert_text_at_cursor(p_text);
|
||||||
cursor.column = 0;
|
}
|
||||||
cursor.line = 0;
|
|
||||||
cursor.x_ofs = 0;
|
if (undo_enabled) {
|
||||||
cursor.line_ofs = 0;
|
cursor_set_line(0);
|
||||||
cursor.wrap_ofs = 0;
|
cursor_set_column(0);
|
||||||
cursor.last_fit_x = 0;
|
|
||||||
cursor_set_line(0);
|
begin_complex_operation();
|
||||||
cursor_set_column(0);
|
_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();
|
update();
|
||||||
setting_text = false;
|
setting_text = false;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue