compositor: replace weston_buffer_viewport::viewport_set

Remove the explicit boolean variable, and use illegal width to denote
"not set".

Split the boolean into two, so we can later start having buffer.src_*
and surface.* set or not set independently. This may become useful when
the wl_viewport interface is changed to allow modifying them separately.

At the moment, both buffer.src_width and surface.width conditions are
always in sync.

Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
diff --git a/src/compositor.h b/src/compositor.h
index f1f126b..d2afacd 100644
--- a/src/compositor.h
+++ b/src/compositor.h
@@ -662,16 +662,18 @@
 		/* wl_surface.set_scaling_factor */
 		int32_t scale;
 
-		/* bool for whether wl_viewport.set has been
-		 * called yet (before this is called there is no
-		 * cropping or scaling on the surface) */
-		int viewport_set; /* bool */
-
+		/*
+		 * If src_width != wl_fixed_from_int(-1),
+		 * then and only then src_* are used.
+		 */
 		wl_fixed_t src_x, src_y;
 		wl_fixed_t src_width, src_height;
 	} buffer;
 
 	struct {
+		/*
+		 * If width == -1, the size is inferred from the buffer.
+		 */
 		int32_t width, height;
 	} surface;
 };