[PATCH 5/9] compositor: fix shell panel and background setup
Pekka Paalanen
ppaalanen at gmail.com
Tue Nov 15 03:34:52 PST 2011
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.
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