From edc858ad82c2c7a430bc2b7f5ee161e2d0683229 Mon Sep 17 00:00:00 2001 From: PouleyKetchoupp Date: Fri, 30 Jul 2021 10:40:59 -0700 Subject: Optimize theme change in code editor Postpone applying the whole theme when a setting changes, to avoid updating everything many times when the whole editor theme is changed. --- editor/code_editor.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'editor/code_editor.cpp') diff --git a/editor/code_editor.cpp b/editor/code_editor.cpp index 03695419cb..285084a72b 100644 --- a/editor/code_editor.cpp +++ b/editor/code_editor.cpp @@ -31,6 +31,7 @@ #include "code_editor.h" #include "core/input/input.h" +#include "core/object/message_queue.h" #include "core/os/keyboard.h" #include "core/string/string_builder.h" #include "editor/editor_scale.h" @@ -1567,6 +1568,17 @@ void CodeTextEditor::_update_font() { } void CodeTextEditor::_on_settings_change() { + if (settings_changed) { + return; + } + + settings_changed = true; + MessageQueue::get_singleton()->push_callable(callable_mp(this, &CodeTextEditor::_apply_settings_change)); +} + +void CodeTextEditor::_apply_settings_change() { + settings_changed = false; + _update_text_editor_theme(); _update_font(); -- cgit v1.2.3