shell.c: Set dirty for visible views on destroyed output

The geometry for visible views will keep unchanged,
weston_view_set_position() doesn't mark these views
as dirty. So there is no chance for them to reassign output, then
these views will disappear.

Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=72946

Signed-off-by: Xiong Zhang <xiong.y.zhang@intel.com>
diff --git a/desktop-shell/shell.c b/desktop-shell/shell.c
index 7e4ceed..bb71436 100644
--- a/desktop-shell/shell.c
+++ b/desktop-shell/shell.c
@@ -5810,9 +5810,12 @@
 
 		x = first_output->x + first_output->width / 4;
 		y = first_output->y + first_output->height / 4;
+
+		weston_view_set_position(view, x, y);
+	} else {
+		weston_view_geometry_dirty(view);
 	}
 
-	weston_view_set_position(view, x, y);
 
 	shsurf = get_shell_surface(view->surface);