multi-screen-mode=clone/extend to control multi screen mode

Signed-off-by: Xiong Zhang <[email protected]>
---
 src/compositor.c | 9 +++++++++
 src/compositor.h | 7 +++++++
 weston.ini       | 1 +
 3 files changed, 17 insertions(+)

diff --git a/src/compositor.c b/src/compositor.c
index 6a53984..f9e9ba1 100644
--- a/src/compositor.c
+++ b/src/compositor.c
@@ -2886,6 +2886,7 @@ weston_compositor_init(struct weston_compositor *ec,
        struct wl_event_loop *loop;
        struct xkb_rule_names xkb_names;
        struct weston_config_section *s;
+       char *mode;
 
        ec->config = config;
        ec->wl_display = display;
@@ -2940,6 +2941,14 @@ weston_compositor_init(struct weston_compositor *ec,
        if (weston_compositor_xkb_init(ec, &xkb_names) < 0)
                return -1;
 
+       s = weston_config_get_section(ec->config, "core", NULL, NULL);
+       weston_config_section_get_string(s, "multi-screen-mode",
+                                       &mode, "extend");
+       if (!strcmp("clone", mode))
+               ec->multiscreen_mode = WESTON_MULTISCREEN_CLONE;
+       else
+               ec->multiscreen_mode = WESTON_MULTISCREEN_EXTEND;
+
        ec->ping_handler = NULL;
 
        screenshooter_create(ec);
diff --git a/src/compositor.h b/src/compositor.h
index 3437aea..a3171f0 100644
--- a/src/compositor.h
+++ b/src/compositor.h
@@ -520,6 +520,11 @@ enum weston_capability {
        WESTON_CAP_CAPTURE_YFLIP                = 0x0002,
 };
 
+enum weston_multiscreen_mode {
+       WESTON_MULTISCREEN_EXTEND = 0x1,
+       WESTON_MULTISCREEN_CLONE = 0x2,
+};
+
 struct weston_compositor {
        struct wl_signal destroy_signal;
 
@@ -582,6 +587,8 @@ struct weston_compositor {
        int launcher_sock;
 
        uint32_t output_id_pool;
+       enum weston_multiscreen_mode multiscreen_mode;
+       struct weston_output *primary_output;
 
        struct xkb_rule_names xkb_names;
        struct xkb_context *xkb_context;
diff --git a/weston.ini b/weston.ini
index f2abceb..d4458d4 100644
--- a/weston.ini
+++ b/weston.ini
@@ -1,5 +1,6 @@
 [core]
 #modules=desktop-shell.so,xwayland.so,cms-colord.so
+#multi-screen-mode=clone
 
 [shell]
 background-image=/usr/share/backgrounds/gnome/Aqua.jpg
-- 
1.8.3.2

_______________________________________________
wayland-devel mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/wayland-devel

Reply via email to