From 8b771af9869442d4f4f5437e7ae3f6d3e9367b78 Mon Sep 17 00:00:00 2001 From: Marek Chalupa Date: Mon, 1 Sep 2014 17:20:33 +0200 Subject: [PATCH] xdg-shell: fix maximizing in multi-head setup 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 Reviewed-by: Pekka Paalanen --- 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 2b7b2476..3cc5733b 100644 --- a/desktop-shell/shell.c +++ b/desktop-shell/shell.c @@ -5291,15 +5291,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