34 wl_resource_post_error(resource->handle, error_viewport_exists,
"the specified surface already has a viewport");
38 wl_resource *viewportResource = wl_resource_create(resource->client(), &wp_viewport_interface, resource->version(),
id);
85 wl_resource_post_error(resource->handle, error_no_surface,
"the wl_surface for this viewport no longer exists");
89 const qreal x = wl_fixed_to_double(x_fixed);
90 const qreal y = wl_fixed_to_double(y_fixed);
91 const qreal width = wl_fixed_to_double(width_fixed);
92 const qreal height = wl_fixed_to_double(height_fixed);
94 if (x == -1 && y == -1 && width == -1 && height == -1) {
96 surfacePrivate->
pending->viewport.sourceGeometry = QRectF();
97 surfacePrivate->
pending->viewport.sourceGeometryIsSet =
true;
101 if (x < 0 || y < 0 || width <= 0 || height <= 0) {
102 wl_resource_post_error(resource->handle, error_bad_value,
"invalid source geometry");
107 surfacePrivate->
pending->viewport.sourceGeometry = QRectF(x, y, width, height);
108 surfacePrivate->
pending->viewport.sourceGeometryIsSet =
true;
114 wl_resource_post_error(resource->handle, error_no_surface,
"the wl_surface for this viewport no longer exists");
118 if (width == -1 && height == -1) {
120 surfacePrivate->
pending->viewport.destinationSize = QSize();
121 surfacePrivate->
pending->viewport.destinationSizeIsSet =
true;
125 if (width <= 0 || height <= 0) {
126 wl_resource_post_error(resource->handle, error_bad_value,
"invalid destination size");
131 surfacePrivate->
pending->viewport.destinationSize = QSize(width, height);
132 surfacePrivate->
pending->viewport.destinationSizeIsSet =
true;