Merge pull request #77973 from bruvzg/fix_rtl_rebuild
Fix editor log flicker.
This commit is contained in:
commit
380ee3c0c0
|
@ -346,6 +346,15 @@ void EditorLog::_add_log_line(LogMessage &p_message, bool p_replace_previous) {
|
||||||
}
|
}
|
||||||
|
|
||||||
log->add_newline();
|
log->add_newline();
|
||||||
|
|
||||||
|
if (p_replace_previous) {
|
||||||
|
// Force sync last line update (skip if number of unprocessed log messages is too large to avoid editor lag).
|
||||||
|
if (log->get_pending_paragraphs() < 100) {
|
||||||
|
while (!log->is_ready()) {
|
||||||
|
::OS::get_singleton()->delay_usec(1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void EditorLog::_set_filter_active(bool p_active, MessageType p_message_type) {
|
void EditorLog::_set_filter_active(bool p_active, MessageType p_message_type) {
|
||||||
|
|
|
@ -2741,7 +2741,16 @@ void RichTextLabel::_stop_thread() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int RichTextLabel::get_pending_paragraphs() const {
|
||||||
|
int to_line = main->first_invalid_line.load();
|
||||||
|
int lines = main->lines.size();
|
||||||
|
|
||||||
|
return lines - to_line;
|
||||||
|
}
|
||||||
|
|
||||||
bool RichTextLabel::is_ready() const {
|
bool RichTextLabel::is_ready() const {
|
||||||
|
const_cast<RichTextLabel *>(this)->_validate_line_caches();
|
||||||
|
|
||||||
if (updating.load()) {
|
if (updating.load()) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -3177,7 +3186,8 @@ bool RichTextLabel::remove_paragraph(const int p_paragraph) {
|
||||||
main->lines[0].from = main;
|
main->lines[0].from = main;
|
||||||
}
|
}
|
||||||
|
|
||||||
main->first_invalid_line.store(0);
|
int to_line = main->first_invalid_line.load();
|
||||||
|
main->first_invalid_line.store(MIN(to_line, p_paragraph));
|
||||||
queue_redraw();
|
queue_redraw();
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|
|
@ -684,6 +684,7 @@ public:
|
||||||
bool is_deselect_on_focus_loss_enabled() const;
|
bool is_deselect_on_focus_loss_enabled() const;
|
||||||
void deselect();
|
void deselect();
|
||||||
|
|
||||||
|
int get_pending_paragraphs() const;
|
||||||
bool is_ready() const;
|
bool is_ready() const;
|
||||||
bool is_updating() const;
|
bool is_updating() const;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue