[PATCH] shell: Fix never map fullscreen/transient surface.

Kristian Hoegsberg hoegsberg at gmail.com
Wed Feb 22 09:35:01 PST 2012


On Wed, Feb 22, 2012 at 02:50:46PM +0800, zhiwen.wu at linux.intel.com wrote:
> From: Alex Wu <zhiwen.wu at linx.intel.com>
> 
>        If client send set_fullscreen/set_transient request before the first attach,
>        compositor has no chance to map the surface due to "if (es->output == NULL)".

Ah yes, thanks.  Committed and pushed.
Kristian

> 
>        You can pull it from git://gitorious.org/wayland-for-krh/weston.git map-bug
> ---
>  src/shell.c |    8 ++++----
>  1 files changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/src/shell.c b/src/shell.c
> index fa165e2..3d5dfd9 100644
> --- a/src/shell.c
> +++ b/src/shell.c
> @@ -414,7 +414,7 @@ shell_surface_set_transient(struct wl_client *client,
>  		return;
>  
>  	/* assign to parents output  */
> -	es->output = pes->output;
> +	shsurf->output = pes->output;
>   	weston_surface_set_position(es, pes->geometry.x + x,
>  					pes->geometry.y + y);
>  
> @@ -500,18 +500,18 @@ shell_surface_set_fullscreen(struct wl_client *client,
>  	/* FIXME: Fullscreen on first output */
>  	/* FIXME: Handle output going away */
>  	output = get_default_output(es->compositor);
> -	es->output = output;
>  
>  	shsurf->saved_x = es->geometry.x;
>  	shsurf->saved_y = es->geometry.y;
> +	shsurf->output = output;
>  	shsurf->fullscreen_output = output;
>  	shsurf->type = SHELL_SURFACE_FULLSCREEN;
>  
>  	wl_resource_post_event(resource,
>  			       WL_SHELL_SURFACE_CONFIGURE,
>  			       weston_compositor_get_time(), 0,
> -			       es->output->current->width,
> -			       es->output->current->height);
> +			       shsurf->output->current->width,
> +			       shsurf->output->current->height);
>  }
>  
>  static void
> -- 
> 1.7.5.4
> 


More information about the wayland-devel mailing list