aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoremersion <contact@emersion.fr>2017-10-07 14:01:25 +0200
committeremersion <contact@emersion.fr>2017-10-07 14:01:25 +0200
commit2ffa4f3fce966e3312c0b1ce8c4369d655dce902 (patch)
tree8acfa7bd6d508330586b8c4df00e0f363b22fc5e
parent08ccc7f653e63afbb8199b98be5862520c36d480 (diff)
When output has no modes, send one anyway
-rw-r--r--types/wlr_output.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/types/wlr_output.c b/types/wlr_output.c
index 6149cd3c..f167a213 100644
--- a/types/wlr_output.c
+++ b/types/wlr_output.c
@@ -19,8 +19,8 @@ static void wl_output_send_to_resource(struct wl_resource *resource) {
const uint32_t version = wl_resource_get_version(resource);
if (version >= WL_OUTPUT_GEOMETRY_SINCE_VERSION) {
wl_output_send_geometry(resource, 0, 0, // TODO: get position from layout?
- output->phys_width, output->phys_height, output->subpixel,
- output->make, output->model, output->transform);
+ output->phys_width, output->phys_height, output->subpixel,
+ output->make, output->model, output->transform);
}
if (version >= WL_OUTPUT_MODE_SINCE_VERSION) {
for (size_t i = 0; i < output->modes->length; ++i) {
@@ -31,7 +31,13 @@ static void wl_output_send_to_resource(struct wl_resource *resource) {
flags |= WL_OUTPUT_MODE_CURRENT;
}
wl_output_send_mode(resource, flags,
- mode->width, mode->height, mode->refresh);
+ mode->width, mode->height, mode->refresh);
+ }
+
+ if (output->modes->length == 0) {
+ // Output has no mode, send the current width/height
+ wl_output_send_mode(resource, WL_OUTPUT_MODE_CURRENT,
+ output->width, output->height, 0);
}
}
if (version >= WL_OUTPUT_SCALE_SINCE_VERSION) {