aboutsummaryrefslogtreecommitdiffstats
path: root/meta-agl/recipes-graphics/wayland/weston/0001-desktop-shell-add-option-to-avoid-creating-the-panel.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-agl/recipes-graphics/wayland/weston/0001-desktop-shell-add-option-to-avoid-creating-the-panel.patch')
-rw-r--r--meta-agl/recipes-graphics/wayland/weston/0001-desktop-shell-add-option-to-avoid-creating-the-panel.patch99
1 files changed, 99 insertions, 0 deletions
diff --git a/meta-agl/recipes-graphics/wayland/weston/0001-desktop-shell-add-option-to-avoid-creating-the-panel.patch b/meta-agl/recipes-graphics/wayland/weston/0001-desktop-shell-add-option-to-avoid-creating-the-panel.patch
new file mode 100644
index 000000000..5e8c3c9dc
--- /dev/null
+++ b/meta-agl/recipes-graphics/wayland/weston/0001-desktop-shell-add-option-to-avoid-creating-the-panel.patch
@@ -0,0 +1,99 @@
+From e67118c80ad411ac46b7096aae2635510c80ea6d Mon Sep 17 00:00:00 2001
+From: Jonny Lamb <jonny.lamb@collabora.co.uk>
+Date: Tue, 12 Aug 2014 15:07:51 +0200
+Subject: 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>
+---
+
+--- a/clients/desktop-shell.c 2015-11-05 11:51:26.272052133 +0000
++++ b/clients/desktop-shell.c 2015-11-05 11:56:19.666887702 +0000
+@@ -1130,7 +1130,8 @@
+ 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 @@
+ {
+ 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 @@
+ {
+ 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 @@
+ 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);
+--- a/man/weston.ini.man 2015-11-05 11:56:36.763111313 +0000
++++ b/man/weston.ini.man 2015-11-05 12:06:57.097226512 +0000
+@@ -186,6 +186,11 @@
+ .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