summaryrefslogtreecommitdiff
path: root/src/window_gui.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/window_gui.h')
-rw-r--r--src/window_gui.h22
1 files changed, 8 insertions, 14 deletions
diff --git a/src/window_gui.h b/src/window_gui.h
index fc5ebeeda..0ec585e34 100644
--- a/src/window_gui.h
+++ b/src/window_gui.h
@@ -434,22 +434,16 @@ public:
/**
* Mark this window's data as invalid (in need of re-computing)
* @param data The data to invalidate with
+ * @param gui_scope Whether the funtion is called from GUI scope.
*/
- void InvalidateData(int data = 0)
+ void InvalidateData(int data = 0, bool gui_scope = true)
{
this->SetDirty();
- this->OnInvalidateData(data);
- }
-
- /**
- * Schedule a invalidation call for next redraw.
- * Important for asynchronous invalidation from commands.
- * @param data The data to invalidate with
- */
- void ScheduleInvalidateData(int data = 0)
- {
- this->SetDirty();
- *this->scheduled_invalidation_data.Append() = data;
+ if (!gui_scope) {
+ /* Schedule GUI-scope invalidation for next redraw. */
+ *this->scheduled_invalidation_data.Append() = data;
+ }
+ this->OnInvalidateData(data, gui_scope);
}
/**
@@ -458,7 +452,7 @@ public:
void ProcessScheduledInvalidations()
{
for (int *data = this->scheduled_invalidation_data.Begin(); this->window_class != WC_INVALID && data != this->scheduled_invalidation_data.End(); data++) {
- this->OnInvalidateData(*data);
+ this->OnInvalidateData(*data, true);
}
this->scheduled_invalidation_data.Clear();
}