From 82872d0a29c80c91c0571a79b5d297f4c4ed4953 Mon Sep 17 00:00:00 2001 From: Peter Nelson Date: Sat, 27 Jan 2024 14:13:46 +0000 Subject: [PATCH] Change: Limit scheduled window invalidation events to just one. Stacking up window invalidation events does not serve much use as in all cases the data passed is the same. When processing the events, it would then invalidate windows multiple times for no reason. --- src/window.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/window.cpp b/src/window.cpp index 3287159da1..68c979cbe2 100644 --- a/src/window.cpp +++ b/src/window.cpp @@ -3121,7 +3121,9 @@ void Window::InvalidateData(int data, bool gui_scope) this->SetDirty(); if (!gui_scope) { /* Schedule GUI-scope invalidation for next redraw. */ - this->scheduled_invalidation_data.push_back(data); + if (std::find(std::begin(this->scheduled_invalidation_data), std::end(this->scheduled_invalidation_data), data) == std::end(this->scheduled_invalidation_data)) { + this->scheduled_invalidation_data.push_back(data); + } } this->OnInvalidateData(data, gui_scope); }