Desktop window is repainted on WM_ERASEBKGND, it must never get a
WM_PAINT.
diff --git a/server/window.c b/server/window.c
index 7a2b50f..c7af5e8 100644
--- a/server/window.c
+++ b/server/window.c
@@ -1660,7 +1660,12 @@
else
{
if (reply->flags & UPDATE_NONCLIENT) validate_non_client( win );
- if (reply->flags & UPDATE_ERASE) win->paint_flags &= ~PAINT_ERASE;
+ if (reply->flags & UPDATE_ERASE)
+ {
+ win->paint_flags &= ~PAINT_ERASE;
+ /* desktop window only gets erased, not repainted */
+ if (win == top_window) validate_whole_window( win );
+ }
}
}