ivi-shell: listen compositor wake_signal

If compositor wakes up from sleep state, we have
to trigger repaint for all outputs.

Signed-off-by: Emre Ucan <eucan@de.adit-jv.com>
Reviewed-by: Daniel Stone <daniels@collabora.com>
dev
Emre Ucan 7 years ago committed by Daniel Stone
parent 280b730144
commit cf4113c629
  1. 16
      ivi-shell/ivi-shell.c
  2. 1
      ivi-shell/ivi-shell.h

@ -361,6 +361,8 @@ shell_destroy(struct wl_listener *listener, void *data)
text_backend_destroy(shell->text_backend); text_backend_destroy(shell->text_backend);
input_panel_destroy(shell); input_panel_destroy(shell);
wl_list_remove(&shell->wake_listener.link);
wl_list_for_each_safe(ivisurf, next, &shell->ivi_surface_list, link) { wl_list_for_each_safe(ivisurf, next, &shell->ivi_surface_list, link) {
wl_list_remove(&ivisurf->link); wl_list_remove(&ivisurf->link);
free(ivisurf); free(ivisurf);
@ -369,6 +371,17 @@ shell_destroy(struct wl_listener *listener, void *data)
free(shell); free(shell);
} }
/*
* Called through the compositor's wake signal.
*/
static void
wake_handler(struct wl_listener *listener, void *data)
{
struct weston_compositor *compositor = data;
weston_compositor_damage_all(compositor);
}
static void static void
terminate_binding(struct weston_keyboard *keyboard, const struct timespec *time, terminate_binding(struct weston_keyboard *keyboard, const struct timespec *time,
uint32_t key, void *data) uint32_t key, void *data)
@ -480,6 +493,9 @@ wet_shell_init(struct weston_compositor *compositor,
shell->destroy_listener.notify = shell_destroy; shell->destroy_listener.notify = shell_destroy;
wl_signal_add(&compositor->destroy_signal, &shell->destroy_listener); wl_signal_add(&compositor->destroy_signal, &shell->destroy_listener);
shell->wake_listener.notify = wake_handler;
wl_signal_add(&compositor->wake_signal, &shell->wake_listener);
if (input_panel_setup(shell) < 0) if (input_panel_setup(shell) < 0)
goto out; goto out;

@ -34,6 +34,7 @@
struct ivi_shell struct ivi_shell
{ {
struct wl_listener destroy_listener; struct wl_listener destroy_listener;
struct wl_listener wake_listener;
struct weston_compositor *compositor; struct weston_compositor *compositor;

Loading…
Cancel
Save