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>
This commit is contained in:
@@ -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;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user