diff --git a/desktop-shell/shell.c b/desktop-shell/shell.c index 23d537dc..e695008a 100644 --- a/desktop-shell/shell.c +++ b/desktop-shell/shell.c @@ -4652,6 +4652,10 @@ shell_reposition_view_on_output_change(struct weston_view *view) } } + shsurf = get_shell_surface(view->surface); + if (!shsurf) + return; + if (!visible) { first_output = container_of(ec->output_list.next, struct weston_output, link); @@ -4662,13 +4666,13 @@ shell_reposition_view_on_output_change(struct weston_view *view) weston_view_set_position(view, x, y); } else { weston_view_geometry_dirty(view); + + if (shsurf->state.maximized || + shsurf->state.fullscreen) + return; } - shsurf = get_shell_surface(view->surface); - if (!shsurf) - return; - shsurf->saved_position_valid = false; set_maximized(shsurf, false); set_fullscreen(shsurf, false, NULL);