From cf4113c629751adcbb9904087932e12b5621219b Mon Sep 17 00:00:00 2001 From: Emre Ucan Date: Tue, 5 Jun 2018 10:23:00 +0200 Subject: [PATCH] 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 Reviewed-by: Daniel Stone --- ivi-shell/ivi-shell.c | 16 ++++++++++++++++ ivi-shell/ivi-shell.h | 1 + 2 files changed, 17 insertions(+) diff --git a/ivi-shell/ivi-shell.c b/ivi-shell/ivi-shell.c index 51e13a0..0235d26 100644 --- a/ivi-shell/ivi-shell.c +++ b/ivi-shell/ivi-shell.c @@ -361,6 +361,8 @@ shell_destroy(struct wl_listener *listener, void *data) text_backend_destroy(shell->text_backend); 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_remove(&ivisurf->link); free(ivisurf); @@ -369,6 +371,17 @@ shell_destroy(struct wl_listener *listener, void *data) 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 terminate_binding(struct weston_keyboard *keyboard, const struct timespec *time, uint32_t key, void *data) @@ -480,6 +493,9 @@ wet_shell_init(struct weston_compositor *compositor, shell->destroy_listener.notify = shell_destroy; 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) goto out; diff --git a/ivi-shell/ivi-shell.h b/ivi-shell/ivi-shell.h index e35f75f..2c0064d 100644 --- a/ivi-shell/ivi-shell.h +++ b/ivi-shell/ivi-shell.h @@ -34,6 +34,7 @@ struct ivi_shell { struct wl_listener destroy_listener; + struct wl_listener wake_listener; struct weston_compositor *compositor; -- 2.7.4