do not render frames when any surface has uncommitted changes

This commit is contained in:
Alexander Courtis 2020-07-29 15:54:14 +10:00
parent 0a2a2bd22c
commit 0824977739

5
dwl.c
View File

@ -638,10 +638,11 @@ destroynotify(struct wl_listener *listener, void *data)
{ {
/* Called when the surface is destroyed and should never be shown again. */ /* Called when the surface is destroyed and should never be shown again. */
Client *c = wl_container_of(listener, c, destroy); Client *c = wl_container_of(listener, c, destroy);
wl_list_remove(&c->commit.link);
wl_list_remove(&c->map.link); wl_list_remove(&c->map.link);
wl_list_remove(&c->unmap.link); wl_list_remove(&c->unmap.link);
wl_list_remove(&c->destroy.link); wl_list_remove(&c->destroy.link);
if (c->type == XDGShell)
wl_list_remove(&c->commit.link);
free(c); free(c);
} }
@ -1247,7 +1248,7 @@ rendermon(struct wl_listener *listener, void *data)
{ {
if (c->dirty) if (c->dirty)
{ {
wlr_surface_send_frame_done(c->xdg_surface->surface, &now); wlr_surface_send_frame_done(WLR_SURFACE(c), &now);
render = 0; render = 0;
} }
} }