xwayland/window: Do not double add window to damage list

The window might be retained in the damage list after
`xwl_screen_post_damage` in certain conditions. This means we need to
check if the window is already in the list to avoid adding the same
window twice which will lead to list corruption resulting in server freeze
in `xwl_screen_post_damage`.

Signed-off-by: Minh Phan <phanquangminh217@gmail.com>
(cherry picked from commit ba644a64a4)
This commit is contained in:
Minh Phan 2023-02-05 14:38:32 +07:00 committed by Olivier Fourdan
parent 700ddafe0c
commit f055285246

View file

@ -175,7 +175,8 @@ damage_report(DamagePtr pDamage, RegionPtr pRegion, void *data)
}
#endif
xorg_list_add(&xwl_window->link_damage, &xwl_screen->damage_window_list);
if (xorg_list_is_empty(&xwl_window->link_damage))
xorg_list_add(&xwl_window->link_damage, &xwl_screen->damage_window_list);
}
static void