From: Quentin Glidic <sardemff7+...@sardemff7.net> Now weston actually supports putting the panel at the bottom of the screen.
Signed-off-by: Quentin Glidic <sardemff7+...@sardemff7.net> --- desktop-shell/shell.c | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/desktop-shell/shell.c b/desktop-shell/shell.c index a5fca56..2bb92df 100644 --- a/desktop-shell/shell.c +++ b/desktop-shell/shell.c @@ -4335,7 +4335,7 @@ static void shell_fade(struct desktop_shell *shell, enum fade_type type); static void -configure_static_view(struct weston_view *ev, struct weston_layer *layer) +configure_static_view(struct weston_view *ev, struct weston_layer *layer, int x, int y) { struct weston_view *v, *next; @@ -4347,7 +4347,7 @@ configure_static_view(struct weston_view *ev, struct weston_layer *layer) } } - weston_view_set_position(ev, ev->output->x, ev->output->y); + weston_view_set_position(ev, ev->output->x + x, ev->output->y + y); if (wl_list_empty(&ev->layer_link.link)) { weston_layer_entry_insert(&layer->view_list, &ev->layer_link); @@ -4384,7 +4384,7 @@ background_configure(struct weston_surface *es, int32_t sx, int32_t sy) view = container_of(es->views.next, struct weston_view, surface_link); - configure_static_view(view, &shell->background_layer); + configure_static_view(view, &shell->background_layer, 0, 0); } static void @@ -4449,10 +4449,26 @@ panel_configure(struct weston_surface *es, int32_t sx, int32_t sy) { struct desktop_shell *shell = es->configure_private; struct weston_view *view; + int width, height; + int x = 0, y = 0; view = container_of(es->views.next, struct weston_view, surface_link); - configure_static_view(view, &shell->panel_layer); + get_panel_size(shell, view, &width, &height); + switch (shell->panel_position) { + case WESTON_DESKTOP_SHELL_PANEL_POSITION_TOP: + break; + case WESTON_DESKTOP_SHELL_PANEL_POSITION_BOTTOM: + y = view->output->height - height; + break; + case WESTON_DESKTOP_SHELL_PANEL_POSITION_LEFT: + break; + case WESTON_DESKTOP_SHELL_PANEL_POSITION_RIGHT: + x = view->output->width - width; + break; + } + + configure_static_view(view, &shell->panel_layer, x, y); } static void -- 2.9.0 _______________________________________________ wayland-devel mailing list wayland-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/wayland-devel