[PATCH v2 2/2] xdg-shell: fix maximizing in multi-head setup

Pekka Paalanen ppaalanen at gmail.com
Wed Sep 10 06:35:36 PDT 2014


On Mon,  1 Sep 2014 17:20:33 +0200
Marek Chalupa <mchqwerty at gmail.com> wrote:

> Set the right position of maximized window. Up until now we ignored
> output's "position" and were using only the working area
> of output which is in output-relative coordinates. This led to
> showing the maximized window always on the first output.
> 
> This, along with the previous patch, fixes
> https://bugs.freedesktop.org/show_bug.cgi?id=82967
> 
> Signed-off-by: Marek Chalupa <mchqwerty at gmail.com>
> ---
>  desktop-shell/shell.c | 7 ++++---
>  1 file changed, 4 insertions(+), 3 deletions(-)
> 
> diff --git a/desktop-shell/shell.c b/desktop-shell/shell.c
> index d5996a3..9c0e721 100644
> --- a/desktop-shell/shell.c
> +++ b/desktop-shell/shell.c
> @@ -5114,15 +5114,16 @@ set_maximized_position(struct desktop_shell *shell,
>  {
>  	int32_t surf_x, surf_y;
>  	pixman_rectangle32_t area;
> +	pixman_box32_t *e;
>  
> -	/* use surface configure to set the geometry */
>  	get_output_work_area(shell, shsurf->output, &area);
>  	surface_subsurfaces_boundingbox(shsurf->surface,
>  					&surf_x, &surf_y, NULL, NULL);
> +	e = pixman_region32_extents(&shsurf->output->region);
>  
>  	weston_view_set_position(shsurf->view,
> -				 area.x - surf_x,
> -				 area.y - surf_y);
> +				 e->x1 + area.x - surf_x,
> +				 e->y1 + area.y - surf_y);
>  }
>  
>  static void

Yup, that fixes it completely, tested on x11 backend with two
different-sized outputs. Pushed.


Thanks,
pq


More information about the wayland-devel mailing list