desktop-shell: add option to avoid creating the panel
This option is so we can disable showing any panel at all. The default is to continue showing the panel and no example is added to weston.ini because it's an uncommon request. Tested-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
This commit is contained in:
parent
1046f121f7
commit
e67118c80a
@ -1130,7 +1130,8 @@ static void
|
||||
output_destroy(struct output *output)
|
||||
{
|
||||
background_destroy(output->background);
|
||||
panel_destroy(output->panel);
|
||||
if (output->panel)
|
||||
panel_destroy(output->panel);
|
||||
wl_output_destroy(output->output);
|
||||
wl_list_remove(&output->link);
|
||||
|
||||
@ -1160,7 +1161,8 @@ output_handle_geometry(void *data,
|
||||
{
|
||||
struct output *output = data;
|
||||
|
||||
window_set_buffer_transform(output->panel->window, transform);
|
||||
if (output->panel)
|
||||
window_set_buffer_transform(output->panel->window, transform);
|
||||
window_set_buffer_transform(output->background->window, transform);
|
||||
}
|
||||
|
||||
@ -1187,7 +1189,8 @@ output_handle_scale(void *data,
|
||||
{
|
||||
struct output *output = data;
|
||||
|
||||
window_set_buffer_scale(output->panel->window, scale);
|
||||
if (output->panel)
|
||||
window_set_buffer_scale(output->panel->window, scale);
|
||||
window_set_buffer_scale(output->background->window, scale);
|
||||
}
|
||||
|
||||
@ -1198,15 +1201,36 @@ static const struct wl_output_listener output_listener = {
|
||||
output_handle_scale
|
||||
};
|
||||
|
||||
static int
|
||||
want_panel(struct desktop *desktop)
|
||||
{
|
||||
struct weston_config_section *s;
|
||||
char *location = NULL;
|
||||
int ret = 1;
|
||||
|
||||
s = weston_config_get_section(desktop->config, "shell", NULL, NULL);
|
||||
weston_config_section_get_string(s, "panel-location",
|
||||
&location, "top");
|
||||
|
||||
if (strcmp(location, "top") != 0)
|
||||
ret = 0;
|
||||
|
||||
free(location);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
static void
|
||||
output_init(struct output *output, struct desktop *desktop)
|
||||
{
|
||||
struct wl_surface *surface;
|
||||
|
||||
output->panel = panel_create(desktop);
|
||||
surface = window_get_wl_surface(output->panel->window);
|
||||
desktop_shell_set_panel(desktop->shell,
|
||||
output->output, surface);
|
||||
if (want_panel(desktop)) {
|
||||
output->panel = panel_create(desktop);
|
||||
surface = window_get_wl_surface(output->panel->window);
|
||||
desktop_shell_set_panel(desktop->shell,
|
||||
output->output, surface);
|
||||
}
|
||||
|
||||
output->background = background_create(desktop);
|
||||
surface = window_get_wl_surface(output->background->window);
|
||||
|
@ -186,6 +186,11 @@ digit pairs are in order transparency, red, green, and blue. Examples:
|
||||
.fi
|
||||
.RE
|
||||
.TP 7
|
||||
.BI "panel-location=" top
|
||||
sets the location of the panel (string). Can be
|
||||
.B top,
|
||||
.B none.
|
||||
.TP 7
|
||||
.BI "locking=" true
|
||||
enables screen locking (boolean).
|
||||
.TP 7
|
||||
|
Loading…
Reference in New Issue
Block a user