win: skip fading out for window which aren't ever damaged

Signed-off-by: Yuxuan Shui <yshuiv7@gmail.com>
This commit is contained in:
Yuxuan Shui
2020-12-04 02:58:02 +00:00
parent 1985360632
commit e66a452a27

View File

@@ -2262,7 +2262,13 @@ void unmap_win_start(session_t *ps, struct managed_win *w) {
}
#endif
if (!ps->redirected) {
if (!ps->redirected || !w->ever_damaged) {
// If we are not redirected, we skip fading because we aren't rendering
// anything anyway.
// If the window isn't ever damaged, it won't be painted either (see
// paint_preprocess), so we can skip fading. This is different from
// mapping, because a mapped window could receive damage while it's fading
// in, but an unmapped window couldn't while it's fading out.
CHECK(!win_skip_fading(ps, w));
}
}