diff options
Diffstat (limited to 'hw/xwayland/xwayland-window.c')
-rw-r--r-- | hw/xwayland/xwayland-window.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/hw/xwayland/xwayland-window.c b/hw/xwayland/xwayland-window.c index b7574eeb5..67485d1d3 100644 --- a/hw/xwayland/xwayland-window.c +++ b/hw/xwayland/xwayland-window.c @@ -106,9 +106,21 @@ static void xwl_window_set_allow_commits(struct xwl_window *xwl_window, Bool allow, const char *debug_msg) { + struct xwl_screen *xwl_screen = xwl_window->xwl_screen; + DamagePtr damage; + xwl_window->allow_commits = allow; DebugF("XWAYLAND: win %d allow_commits = %d (%s)\n", xwl_window->window->drawable.id, allow, debug_msg); + + damage = window_get_damage(xwl_window->window); + if (allow && + xorg_list_is_empty(&xwl_window->link_damage) && + damage && + RegionNotEmpty(DamageRegion(damage))) { + xorg_list_add(&xwl_window->link_damage, + &xwl_screen->damage_window_list); + } } static void |