compositor-wayland: Add a --sprawl option
This forces weston to create one output for every parent output. This is enabled by default if it detects a wl_fullscreen_shell. The --sprawl option is primarily to enable this on wl_shell. Signed-off-by: Jason Ekstrand <jason@jlekstrand.net>
This commit is contained in:
parent
53ee0dcca4
commit
e4ca8b0bdd
@ -64,6 +64,7 @@ struct wayland_compositor {
|
|||||||
} parent;
|
} parent;
|
||||||
|
|
||||||
int use_pixman;
|
int use_pixman;
|
||||||
|
int sprawl_across_outputs;
|
||||||
|
|
||||||
struct theme *theme;
|
struct theme *theme;
|
||||||
cairo_device_t *frame_device;
|
cairo_device_t *frame_device;
|
||||||
@ -1713,7 +1714,7 @@ wayland_compositor_register_output(struct wayland_compositor *c, uint32_t id)
|
|||||||
wl_list_init(&output->mode_list);
|
wl_list_init(&output->mode_list);
|
||||||
wl_list_insert(&c->parent.output_list, &output->link);
|
wl_list_insert(&c->parent.output_list, &output->link);
|
||||||
|
|
||||||
if (c->parent.fshell) {
|
if (c->sprawl_across_outputs) {
|
||||||
wl_display_roundtrip(c->parent.wl_display);
|
wl_display_roundtrip(c->parent.wl_display);
|
||||||
wayland_output_create_for_parent_output(c, output);
|
wayland_output_create_for_parent_output(c, output);
|
||||||
}
|
}
|
||||||
@ -1998,7 +1999,7 @@ backend_init(struct wl_display *display, int *argc, char *argv[],
|
|||||||
struct wayland_output *output;
|
struct wayland_output *output;
|
||||||
struct wayland_parent_output *poutput;
|
struct wayland_parent_output *poutput;
|
||||||
struct weston_config_section *section;
|
struct weston_config_section *section;
|
||||||
int x, count, width, height, scale, use_pixman, fullscreen;
|
int x, count, width, height, scale, use_pixman, fullscreen, sprawl;
|
||||||
const char *section_name, *display_name;
|
const char *section_name, *display_name;
|
||||||
char *name;
|
char *name;
|
||||||
|
|
||||||
@ -2010,6 +2011,7 @@ backend_init(struct wl_display *display, int *argc, char *argv[],
|
|||||||
{ WESTON_OPTION_BOOLEAN, "use-pixman", 0, &use_pixman },
|
{ WESTON_OPTION_BOOLEAN, "use-pixman", 0, &use_pixman },
|
||||||
{ WESTON_OPTION_INTEGER, "output-count", 0, &count },
|
{ WESTON_OPTION_INTEGER, "output-count", 0, &count },
|
||||||
{ WESTON_OPTION_BOOLEAN, "fullscreen", 0, &fullscreen },
|
{ WESTON_OPTION_BOOLEAN, "fullscreen", 0, &fullscreen },
|
||||||
|
{ WESTON_OPTION_BOOLEAN, "sprawl", 0, &sprawl },
|
||||||
};
|
};
|
||||||
|
|
||||||
width = 0;
|
width = 0;
|
||||||
@ -2019,6 +2021,7 @@ backend_init(struct wl_display *display, int *argc, char *argv[],
|
|||||||
use_pixman = 0;
|
use_pixman = 0;
|
||||||
count = 1;
|
count = 1;
|
||||||
fullscreen = 0;
|
fullscreen = 0;
|
||||||
|
sprawl = 0;
|
||||||
parse_options(wayland_options,
|
parse_options(wayland_options,
|
||||||
ARRAY_LENGTH(wayland_options), argc, argv);
|
ARRAY_LENGTH(wayland_options), argc, argv);
|
||||||
|
|
||||||
@ -2027,7 +2030,8 @@ backend_init(struct wl_display *display, int *argc, char *argv[],
|
|||||||
if (!c)
|
if (!c)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
if (c->parent.fshell) {
|
if (sprawl || c->parent.fshell) {
|
||||||
|
c->sprawl_across_outputs = 1;
|
||||||
wl_display_roundtrip(c->parent.wl_display);
|
wl_display_roundtrip(c->parent.wl_display);
|
||||||
|
|
||||||
wl_list_for_each(poutput, &c->parent.output_list, link)
|
wl_list_for_each(poutput, &c->parent.output_list, link)
|
||||||
|
@ -4036,6 +4036,7 @@ usage(int error_code)
|
|||||||
" --fullscreen\t\tRun in fullscreen mode\n"
|
" --fullscreen\t\tRun in fullscreen mode\n"
|
||||||
" --use-pixman\t\tUse the pixman (CPU) renderer\n"
|
" --use-pixman\t\tUse the pixman (CPU) renderer\n"
|
||||||
" --output-count=COUNT\tCreate multiple outputs\n"
|
" --output-count=COUNT\tCreate multiple outputs\n"
|
||||||
|
" --sprawl\t\tCreate one fullscreen output for every parent output\n"
|
||||||
" --display=DISPLAY\tWayland display to connect to\n\n");
|
" --display=DISPLAY\tWayland display to connect to\n\n");
|
||||||
|
|
||||||
#if defined(BUILD_RPI_COMPOSITOR) && defined(HAVE_BCM_HOST)
|
#if defined(BUILD_RPI_COMPOSITOR) && defined(HAVE_BCM_HOST)
|
||||||
|
Loading…
Reference in New Issue
Block a user