Fix deferred window invalidations not redrawng window
This commit is contained in:
@@ -3335,10 +3335,11 @@ void SetWindowClassesDirty(WindowClass cls)
|
|||||||
*/
|
*/
|
||||||
void Window::InvalidateData(int data, bool gui_scope)
|
void Window::InvalidateData(int data, bool gui_scope)
|
||||||
{
|
{
|
||||||
this->SetDirty();
|
|
||||||
if (!gui_scope) {
|
if (!gui_scope) {
|
||||||
/* Schedule GUI-scope invalidation for next redraw. */
|
/* Schedule GUI-scope invalidation for next redraw. */
|
||||||
this->scheduled_invalidation_data.push_back(data);
|
this->scheduled_invalidation_data.push_back(data);
|
||||||
|
} else {
|
||||||
|
this->SetDirty();
|
||||||
}
|
}
|
||||||
this->OnInvalidateData(data, gui_scope);
|
this->OnInvalidateData(data, gui_scope);
|
||||||
}
|
}
|
||||||
@@ -3352,6 +3353,7 @@ void Window::ProcessScheduledInvalidations()
|
|||||||
if (this->window_class == WC_INVALID) break;
|
if (this->window_class == WC_INVALID) break;
|
||||||
this->OnInvalidateData(data, true);
|
this->OnInvalidateData(data, true);
|
||||||
}
|
}
|
||||||
|
if (!this->scheduled_invalidation_data.empty()) this->SetDirty();
|
||||||
this->scheduled_invalidation_data.clear();
|
this->scheduled_invalidation_data.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user