libweston-desktop: Fix configure event for already well-sized surfaces

Even if the surface size is already correct, we need to store the
configured size in case some other state change triggers a configure
event.

Signed-off-by: Quentin Glidic <sardemff7+git@sardemff7.net>
Reviewed-by: Arnaud Vrac <avrac@freebox.fr>
diff --git a/libweston-desktop/xdg-shell-v6.c b/libweston-desktop/xdg-shell-v6.c
index d4d0112..2afce81 100644
--- a/libweston-desktop/xdg-shell-v6.c
+++ b/libweston-desktop/xdg-shell-v6.c
@@ -607,11 +607,13 @@
 	struct weston_surface *wsurface =
 		weston_desktop_surface_get_surface(toplevel->base.desktop_surface);
 
-	if (wsurface->width == width && wsurface->height == height)
-		return;
-
 	toplevel->requested_size.width = width;
 	toplevel->requested_size.height = height;
+
+	if ((wsurface->width == width && wsurface->height == height) ||
+	    (width == 0 && height == 0))
+		return;
+
 	weston_desktop_xdg_surface_schedule_configure(&toplevel->base);
 }