diff options
-rw-r--r-- | src/desktop.c | 4 | ||||
-rw-r--r-- | src/ivi-compositor.h | 4 | ||||
-rw-r--r-- | src/shell.c | 3 |
3 files changed, 9 insertions, 2 deletions
diff --git a/src/desktop.c b/src/desktop.c index 361c5b4..54eac5b 100644 --- a/src/desktop.c +++ b/src/desktop.c @@ -211,8 +211,10 @@ desktop_surface_added(struct weston_desktop_surface *dsurface, void *userdata) app_id = weston_desktop_surface_get_app_id(dsurface); - if ((active_output = ivi_layout_find_with_app_id(app_id, ivi))) + if ((active_output = ivi_layout_find_with_app_id(app_id, ivi))) { ivi_set_pending_desktop_surface_remote(active_output, app_id); + shell_send_app_on_output(ivi, app_id, active_output->output->name); + } /* reset any caps to make sure we apply the new caps */ ivi_seat_reset_caps_sent(ivi); diff --git a/src/ivi-compositor.h b/src/ivi-compositor.h index 49d38de..fb5a0fa 100644 --- a/src/ivi-compositor.h +++ b/src/ivi-compositor.h @@ -515,4 +515,8 @@ get_default_output(struct weston_compositor *compositor); struct weston_output * get_focused_output(struct weston_compositor *compositor); +void +shell_send_app_on_output(struct ivi_compositor *ivi, const char *app_id, + const char *output_name); + #endif diff --git a/src/shell.c b/src/shell.c index c18017b..ac20b4f 100644 --- a/src/shell.c +++ b/src/shell.c @@ -1172,7 +1172,8 @@ void shell_send_app_on_output(struct ivi_compositor *ivi, const char *app_id, const char *output_name) { - if (app_id && wl_resource_get_version(ivi->shell_client.resource) >= + if (app_id && ivi->shell_client.resource && + wl_resource_get_version(ivi->shell_client.resource) >= AGL_SHELL_APP_ON_OUTPUT_SINCE_VERSION) { agl_shell_send_app_on_output(ivi->shell_client.resource, |