shell: do not apply damage on window type set
authorPekka Paalanen <ppaalanen@gmail.com>
Mon, 13 Feb 2012 09:04:30 +0000 (11:04 +0200)
committerPekka Paalanen <ppaalanen@gmail.com>
Mon, 13 Feb 2012 09:41:24 +0000 (11:41 +0200)
Setting a window type is a non-visual operation, it is not supposed to
affect the rendering immediately. Therefore it does not need to apply
surface damage.

The proper surface damage is applied on an attach request following a
window type change.

Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
src/shell.c

index 869eb22..944df49 100644 (file)
@@ -383,7 +383,6 @@ shell_surface_set_toplevel(struct wl_client *client,
        if (reset_shell_surface_type(surface))
                return;
 
-       weston_surface_damage(surface->surface);
        surface->type = SHELL_SURFACE_TOPLEVEL;
 }
 
@@ -408,7 +407,6 @@ shell_surface_set_transient(struct wl_client *client,
        es->geometry.y = pes->geometry.y + y;
        es->geometry.dirty = 1;
 
-       weston_surface_damage(es);
        shsurf->type = SHELL_SURFACE_TRANSIENT;
 }
 
@@ -442,7 +440,6 @@ shell_surface_set_fullscreen(struct wl_client *client,
        es->geometry.y = (output->current->height - es->geometry.height) / 2;
        es->geometry.dirty = 1;
        es->fullscreen_output = output;
-       weston_surface_damage(es);
        shsurf->type = SHELL_SURFACE_FULLSCREEN;
 }
 
@@ -557,9 +554,7 @@ shell_surface_set_popup(struct wl_client *client,
                        int32_t x, int32_t y, uint32_t flags)
 {
        struct shell_surface *shsurf = resource->data;
-       struct weston_surface *es = shsurf->surface;
 
-       weston_surface_damage(es);
        shsurf->type = SHELL_SURFACE_POPUP;
        shsurf->parent = parent_resource->data;
        shsurf->popup.x = x;