diff options
author | Harsha M M <harsha.manjulamallikarjun@in.bosch.com> | 2018-08-03 12:37:20 +0530 |
---|---|---|
committer | Harsha M M <harsha.manjulamallikarjun@in.bosch.com> | 2018-08-07 16:10:53 +0530 |
commit | f7795d2a347dc3797a706971d759111e8e68be18 (patch) | |
tree | b6e86d5f0ee519ce65a968831396b6421a7fc430 | |
parent | 5d410575514e6ca7b234258cf2180a7434c11f15 (diff) | |
download | wayland-ivi-extension-f7795d2a347dc3797a706971d759111e8e68be18.tar.gz |
ivi-controller: Ensure input controller is de-initialized first in de-init sequence
Ensure that input controller is de-initialized and then ivi controller.
This is necessary since ivi-input-controller is dependent on ivi controller.
wl_signal_emit issues signal using first-in first-out approach, whereas
in this case we need first-in last-out approach.
Signed-off-by: Harsha M M <harsha.manjulamallikarjun@in.bosch.com>
-rw-r--r-- | weston-ivi-shell/src/ivi-controller.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/weston-ivi-shell/src/ivi-controller.c b/weston-ivi-shell/src/ivi-controller.c index ede2f03..04ed4d9 100644 --- a/weston-ivi-shell/src/ivi-controller.c +++ b/weston-ivi-shell/src/ivi-controller.c @@ -2095,9 +2095,6 @@ init_ivi_shell(struct weston_compositor *ec, struct ivishell *shell) wl_signal_add(&ec->output_destroyed_signal, &shell->output_destroyed); wl_signal_add(&ec->output_resized_signal, &shell->output_resized); - shell->destroy_listener.notify = ivi_shell_destroy; - wl_signal_add(&ec->destroy_signal, &shell->destroy_listener); - wl_signal_init(&shell->ivisurface_created_signal); wl_signal_init(&shell->ivisurface_removed_signal); } @@ -2206,6 +2203,12 @@ wet_module_init(struct weston_compositor *compositor, free(shell); return -1; } + /* add compositor destroy signal after loading input + * modules, to ensure input module is the first one to + * de-initialize + */ + shell->destroy_listener.notify = ivi_shell_destroy; + wl_signal_add(&compositor->destroy_signal, &shell->destroy_listener); if (shell->bkgnd_surface_id && shell->ivi_client_name) { loop = wl_display_get_event_loop(compositor->wl_display); |