From 01e7b006db1c76ccbc73078e47a124dafc11bd3b Mon Sep 17 00:00:00 2001 From: Pekka Paalanen Date: Thu, 8 Dec 2011 16:42:33 +0200 Subject: [PATCH] shell: fix set_transient In the wl_shell_surface migration, I forgot to correct one cast in shell_surface_set_transient(). 'parent_resource' is not a (struct wlsc_surface *) but (struct shell_surface *). This bug corrupts a wlsc_surface::output field, which later (in my experiments) leads to a segmentation fault in surface_frame(). Fix the casts. Signed-off-by: Pekka Paalanen --- compositor/shell.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/compositor/shell.c b/compositor/shell.c index e1049417..22004f9f 100644 --- a/compositor/shell.c +++ b/compositor/shell.c @@ -312,7 +312,8 @@ shell_surface_set_transient(struct wl_client *client, { struct shell_surface *shsurf = resource->data; struct wlsc_surface *es = shsurf->surface; - struct wlsc_surface *pes = parent_resource->data; + struct shell_surface *pshsurf = parent_resource->data; + struct wlsc_surface *pes = pshsurf->surface; /* assign to parents output */ es->output = pes->output;