From 3b5ea3bc6fb0e1edc678308f5271066a7f6bf90b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kristian=20H=C3=B8gsberg?= Date: Fri, 17 Feb 2012 12:43:56 -0500 Subject: [PATCH] compositor: Move unmap logic to new function weston_surface_unmap() --- src/compositor.c | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/src/compositor.c b/src/compositor.c index c690a43c..e295aff3 100644 --- a/src/compositor.c +++ b/src/compositor.c @@ -576,6 +576,17 @@ weston_compositor_repick(struct weston_compositor *compositor) weston_device_repick(&device->input_device, time); } +static void +weston_surface_unmap(struct weston_surface *surface) +{ + weston_surface_damage_below(surface); + weston_surface_flush_damage(surface); + surface->output = NULL; + wl_list_remove(&surface->link); + weston_compositor_repick(surface->compositor); + weston_compositor_schedule_repaint(surface->compositor); +} + static void destroy_surface(struct wl_resource *resource) { @@ -584,13 +595,8 @@ destroy_surface(struct wl_resource *resource) struct weston_surface, surface.resource); struct weston_compositor *compositor = surface->compositor; - if (surface->output) { - weston_surface_damage_below(surface); - weston_surface_flush_damage(surface); - - wl_list_remove(&surface->link); - weston_compositor_repick(compositor); - } + if (surface->output) + weston_surface_unmap(surface); if (surface->texture) glDeleteTextures(1, &surface->texture); @@ -1130,8 +1136,7 @@ surface_attach(struct wl_client *client, } if (!buffer_resource && es->output) { - wl_list_remove(&es->link); - es->output = NULL; + weston_surface_unmap(es); es->buffer = NULL; return; }