shell: fix positioning of maximized surfaces with a custom geometry
diff --git a/desktop-shell/shell.c b/desktop-shell/shell.c
index a7514f7..f6d9c79 100644
--- a/desktop-shell/shell.c
+++ b/desktop-shell/shell.c
@@ -5374,8 +5374,13 @@
 	pixman_box32_t *e;
 
 	get_output_work_area(shell, shsurf->output, &area);
-	surface_subsurfaces_boundingbox(shsurf->surface,
-					&surf_x, &surf_y, NULL, NULL);
+	if (shsurf->has_set_geometry) {
+		surf_x = shsurf->geometry.x;
+		surf_y = shsurf->geometry.y;
+	} else {
+		surface_subsurfaces_boundingbox(shsurf->surface,
+						&surf_x, &surf_y, NULL, NULL);
+	}
 	e = pixman_region32_extents(&shsurf->output->region);
 
 	weston_view_set_position(shsurf->view,