When output has no modes, send one anyway

This commit is contained in:
emersion 2017-10-07 14:01:25 +02:00
parent 08ccc7f653
commit 2ffa4f3fce
No known key found for this signature in database
GPG Key ID: 0FDE7BE0E88F5E48
1 changed files with 9 additions and 3 deletions

View File

@ -19,8 +19,8 @@ static void wl_output_send_to_resource(struct wl_resource *resource) {
const uint32_t version = wl_resource_get_version(resource); const uint32_t version = wl_resource_get_version(resource);
if (version >= WL_OUTPUT_GEOMETRY_SINCE_VERSION) { if (version >= WL_OUTPUT_GEOMETRY_SINCE_VERSION) {
wl_output_send_geometry(resource, 0, 0, // TODO: get position from layout? wl_output_send_geometry(resource, 0, 0, // TODO: get position from layout?
output->phys_width, output->phys_height, output->subpixel, output->phys_width, output->phys_height, output->subpixel,
output->make, output->model, output->transform); output->make, output->model, output->transform);
} }
if (version >= WL_OUTPUT_MODE_SINCE_VERSION) { if (version >= WL_OUTPUT_MODE_SINCE_VERSION) {
for (size_t i = 0; i < output->modes->length; ++i) { 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; flags |= WL_OUTPUT_MODE_CURRENT;
} }
wl_output_send_mode(resource, flags, 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) { if (version >= WL_OUTPUT_SCALE_SINCE_VERSION) {