From 808170452b237faf4d57968e1f1eb8615b0e2a2a Mon Sep 17 00:00:00 2001 From: Mario Kleiner Date: Sun, 21 Jun 2015 21:25:11 +0200 Subject: [PATCH] compositor-drm: Allow weston_output_mode_switch_to_native() to work. Initialize output->native_mode with the initially chosen mode for an output, so weston_output_mode_switch_to_native() has something to work with and can switch back from temporary selected modes to the outputs native mode. Before, this was a no-op. This allows an output to switch back to its default mode if a former toplevel fullscreen shell surface created via method WL_SHELL_SURFACE_FULLSCREEN_METHOD_DRIVER gets destroyed, or it gets demoted to non-fullscreen, or if modesetting on the output failed for some reason. v2: Modified and split into a separate patch from original patch "Allow restore_output_mode() to work properly.", as suggested by Derek Foreman. Signed-off-by: Mario Kleiner Cc: Derek Foreman Reviewed-By: Derek Foreman --- src/compositor-drm.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/compositor-drm.c b/src/compositor-drm.c index 58b2e5ac..ad708079 100644 --- a/src/compositor-drm.c +++ b/src/compositor-drm.c @@ -2202,6 +2202,10 @@ create_output_for_connector(struct drm_compositor *ec, connector->count_modes == 0 ? ", built-in" : ""); + /* Set native_ fields, so weston_output_mode_switch_to_native() works */ + output->base.native_mode = output->base.current_mode; + output->base.native_scale = output->base.current_scale; + return 0; err_output: