compositor-drm: Restore use-current-mode functionality

It got lost during the porting to the config API.

Signed-off-by: Armin Krezović <krezovic.armin@gmail.com>
Reviewed-by: Daniel Stone <daniels@collabora.com>
diff --git a/compositor/main.c b/compositor/main.c
index f9614f5..4bd6e68 100644
--- a/compositor/main.c
+++ b/compositor/main.c
@@ -78,6 +78,7 @@
 	struct weston_config *config;
 	struct wet_output_config *parsed_options;
 	struct wl_listener pending_output_listener;
+	bool drm_use_current_mode;
 };
 
 static FILE *weston_logfile = NULL;
@@ -1153,6 +1154,7 @@
 {
 	struct weston_output *output = data;
 	struct weston_config *wc = wet_get_config(output->compositor);
+	struct wet_compositor *wet = to_wet_compositor(output->compositor);
 	struct weston_config_section *section;
 	const struct weston_drm_output_api *api = weston_drm_output_get_api(output->compositor);
 	enum weston_drm_backend_output_mode mode =
@@ -1175,7 +1177,7 @@
 		weston_output_disable(output);
 		free(s);
 		return;
-	} else if (strcmp(s, "current") == 0) {
+	} else if (wet->drm_use_current_mode || strcmp(s, "current") == 0) {
 		mode = WESTON_DRM_BACKEND_OUTPUT_CURRENT;
 	} else if (strcmp(s, "preferred") != 0) {
 		modeline = s;
@@ -1213,13 +1215,16 @@
 {
 	struct weston_drm_backend_config config = {{ 0, }};
 	struct weston_config_section *section;
+	struct wet_compositor *wet = to_wet_compositor(c);
 	int ret = 0;
 
+	wet->drm_use_current_mode = false;
+
 	const struct weston_option options[] = {
 		{ WESTON_OPTION_INTEGER, "connector", 0, &config.connector },
 		{ WESTON_OPTION_STRING, "seat", 0, &config.seat_id },
 		{ WESTON_OPTION_INTEGER, "tty", 0, &config.tty },
-		{ WESTON_OPTION_BOOLEAN, "current-mode", 0, &config.use_current_mode },
+		{ WESTON_OPTION_BOOLEAN, "current-mode", 0, &wet->drm_use_current_mode },
 		{ WESTON_OPTION_BOOLEAN, "use-pixman", 0, &config.use_pixman },
 	};
 
diff --git a/libweston/compositor-drm.c b/libweston/compositor-drm.c
index 8116052..564e324 100644
--- a/libweston/compositor-drm.c
+++ b/libweston/compositor-drm.c
@@ -118,8 +118,6 @@
 
 	int32_t cursor_width;
 	int32_t cursor_height;
-
-	bool use_current_mode;
 };
 
 struct drm_mode {
@@ -3145,7 +3143,6 @@
 	b->sprites_are_broken = 1;
 	b->compositor = compositor;
 	b->use_pixman = config->use_pixman;
-	b->use_current_mode = config->use_current_mode;
 
 	if (parse_gbm_format(config->gbm_format, GBM_FORMAT_XRGB8888, &b->gbm_format) < 0)
 		goto err_compositor;
diff --git a/libweston/compositor-drm.h b/libweston/compositor-drm.h
index 8f89a2b..2e2995a 100644
--- a/libweston/compositor-drm.h
+++ b/libweston/compositor-drm.h
@@ -138,7 +138,6 @@
 	 */
 	void (*configure_device)(struct weston_compositor *compositor,
 				 struct libinput_device *device);
-	bool use_current_mode;
 };
 
 #ifdef  __cplusplus