[PATCH 5/9] compositor: fix shell panel and background setup
Kristian Høgsberg
krh at bitplanet.net
Tue Nov 15 11:22:23 PST 2011
On Tue, Nov 15, 2011 at 6:34 AM, Pekka Paalanen <ppaalanen at gmail.com> wrote:
> The problem was diagnosed by Benjamin Franzke. This patch is a quick fix
> he showed, extended to fix also the background.
>
> If wlsc_surface has no output assigned, the 'frame' event is never sent.
> This causes dri2_swap_buffers() in Mesa (wayland platform) to spin on
> wl_display_iterate() only reading mesages. Therefore messages are never
> actually sent again.
>
> This patch fixes panel button hilighting (panel redraws altogether), and
> also screen unlocking.
Skipping this one, no longer necessary now that we don't throw away
surface.frame callbacks.
Kristian
> Signed-off-by: Pekka Paalanen <ppaalanen at gmail.com>
> Cc: Benjamin Franzke <benjaminfranzke at googlemail.com>
> ---
> compositor/shell.c | 4 ++++
> 1 files changed, 4 insertions(+), 0 deletions(-)
>
> diff --git a/compositor/shell.c b/compositor/shell.c
> index f3e2220..1c8231a 100644
> --- a/compositor/shell.c
> +++ b/compositor/shell.c
> @@ -781,7 +781,9 @@ desktop_shell_set_background(struct wl_client *client,
> struct wlsc_output *output =
> container_of(shell->compositor->output_list.next,
> struct wlsc_output, link);
> + struct wlsc_surface *es = surface_resource->data;
>
> + es->output = output;
> shell->background = surface_resource->data;
> shell->background_listener.func = handle_background_surface_destroy;
> wl_list_insert(&surface_resource->destroy_listener_list,
> @@ -814,7 +816,9 @@ desktop_shell_set_panel(struct wl_client *client,
> struct wlsc_output *output =
> container_of(shell->compositor->output_list.next,
> struct wlsc_output, link);
> + struct wlsc_surface *es = surface_resource->data;
>
> + es->output = output;
> shell->panel = surface_resource->data;
>
> shell->panel_listener.func = handle_panel_surface_destroy;
> --
> 1.7.3.4
>
>
More information about the wayland-devel
mailing list