summary |
shortlog |
log |
commit | commitdiff |
review |
tree
raw |
patch |
inline | side by side (from parent 1:
81be1de)
As we don't have an explicit way to do it, like we have with the
protocol, we try to determine if the surface was being assigned a remote
output and use that, when the surface is created.
Bug-AGL: SPEC-3280
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: Idd95acd9ae69c5ac37b50d447956b0ee46a94677
struct weston_desktop_client *dclient;
struct wl_client *client;
struct ivi_surface *surface;
struct weston_desktop_client *dclient;
struct wl_client *client;
struct ivi_surface *surface;
+ struct ivi_output *active_output = NULL;
const char *app_id = NULL;
dclient = weston_desktop_surface_get_client(dsurface);
const char *app_id = NULL;
dclient = weston_desktop_surface_get_client(dsurface);
app_id = weston_desktop_surface_get_app_id(dsurface);
app_id = weston_desktop_surface_get_app_id(dsurface);
+ if ((active_output = ivi_layout_find_with_app_id(app_id, ivi)))
+ ivi_set_pending_desktop_surface_remote(active_output, app_id);
+
if (ivi->shell_client.ready) {
ivi_check_pending_desktop_surface(surface);
weston_log("Added surface %p, app_id %s, role %s\n", surface,
if (ivi->shell_client.ready) {
ivi_check_pending_desktop_surface(surface);
weston_log("Added surface %p, app_id %s, role %s\n", surface,
const char *
ivi_layout_get_surface_role_name(struct ivi_surface *surf);
const char *
ivi_layout_get_surface_role_name(struct ivi_surface *surf);
+void
+ivi_set_pending_desktop_surface_remote(struct ivi_output *ioutput,
+ const char *app_id);
+
+struct ivi_output *
+ivi_layout_find_with_app_id(const char *app_id, struct ivi_compositor *ivi);
+
ivi_layout_get_surface_role_name(surf), output->name);
}
ivi_layout_get_surface_role_name(surf), output->name);
}
-static struct ivi_output *
-ivi_layout_find_app_id(const char *app_id, struct ivi_compositor *ivi)
+struct ivi_output *
+ivi_layout_find_with_app_id(const char *app_id, struct ivi_compositor *ivi)
{
struct ivi_output *out;
{
struct ivi_output *out;
return;
/* check first if there aren't any outputs being set */
return;
/* check first if there aren't any outputs being set */
- r_output = ivi_layout_find_app_id(app_id, surf->ivi);
+ r_output = ivi_layout_find_with_app_id(app_id, surf->ivi);
if (r_output) {
struct weston_view *view = r_output->fullscreen_view.fs->view;
if (r_output) {
struct weston_view *view = r_output->fullscreen_view.fs->view;
&ivi_output->app_id,
NULL);
&ivi_output->app_id,
NULL);
+ if (ivi_output->app_id == NULL)
+ return;
+
weston_log("Will place app_id %s on output %s\n",
ivi_output->app_id, ivi_output->name);
}
weston_log("Will place app_id %s on output %s\n",
ivi_output->app_id, ivi_output->name);
}
wl_list_insert(&ivi->split_pending_apps, &split->link);
}
wl_list_insert(&ivi->split_pending_apps, &split->link);
}
ivi_set_pending_desktop_surface_remote(struct ivi_output *ioutput,
const char *app_id)
{
ivi_set_pending_desktop_surface_remote(struct ivi_output *ioutput,
const char *app_id)
{