struct weston_desktop_surface *dsurface = surface->dsurface;
struct weston_surface *wsurface =
weston_desktop_surface_get_surface(dsurface);
+ const char *app_id = weston_desktop_surface_get_app_id(dsurface);
struct ivi_output *output = surface->split.output;
struct weston_output *woutput = output->output;
wsurface->is_mapped = true;
surface->view->is_mapped = true;
+
+ shell_advertise_app_state(ivi, app_id,
+ NULL, AGL_SHELL_DESKTOP_APP_STATE_ACTIVATED);
+
+ weston_log("Activation completed for app_id %s, role %s, output %s\n",
+ app_id, ivi_layout_get_surface_role_name(surface), output->name);
}
void
struct weston_desktop_surface *dsurface = surface->dsurface;
struct weston_surface *wsurface =
weston_desktop_surface_get_surface(dsurface);
+ const char *app_id = weston_desktop_surface_get_app_id(dsurface);
struct ivi_output *output = surface->split.output;
struct weston_output *woutput = output->output;
wsurface->is_mapped = true;
surface->view->is_mapped = true;
+
+ shell_advertise_app_state(ivi, app_id,
+ NULL, AGL_SHELL_DESKTOP_APP_STATE_ACTIVATED);
+
+ weston_log("Activation completed for app_id %s, role %s, output %s\n",
+ app_id, ivi_layout_get_surface_role_name(surface), output->name);
}
void
struct weston_desktop_surface *dsurface = surface->dsurface;
struct weston_surface *wsurface =
weston_desktop_surface_get_surface(dsurface);
+ const char *app_id = weston_desktop_surface_get_app_id(dsurface);
struct ivi_output *output = surface->popup.output;
struct weston_output *woutput = output->output;
struct weston_view *view = surface->view;
- struct weston_geometry geom;
if (surface->view->is_mapped)
return;
- geom = weston_desktop_surface_get_geometry(dsurface);
- weston_log("(popup) geom x %d, y %d, width %d, height %d\n", geom.x, geom.y,
- geom.width, geom.height);
-
assert(surface->role == IVI_SURFACE_ROLE_POPUP);
weston_view_set_output(view, woutput);
- if (surface->popup.x || surface->popup.y)
- weston_view_set_position(view, surface->popup.x, surface->popup.y);
- else
- weston_view_set_position(view, geom.x, geom.y);
+ weston_view_set_position(view, surface->popup.x, surface->popup.y);
+
+ /* only clip the pop-up dialog window if we have a valid
+ * width and height being passed on. Users might not want to have one
+ * set-up so only enfore it is really passed on. */
+ if (surface->popup.bb.width > 0 && surface->popup.bb.height > 0)
+ weston_view_set_mask(view, surface->popup.bb.x, surface->popup.bb.y,
+ surface->popup.bb.width, surface->popup.bb.height);
+
weston_layer_entry_insert(&ivi->popup.view_list, &view->layer_link);
weston_view_update_transform(view);
wsurface->is_mapped = true;
surface->view->is_mapped = true;
+
+ shell_advertise_app_state(ivi, app_id,
+ NULL, AGL_SHELL_DESKTOP_APP_STATE_ACTIVATED);
+
+ weston_log("Activation completed for app_id %s, role %s, output %s\n",
+ app_id, ivi_layout_get_surface_role_name(surface), output->name);
}
static void
ivi_layout_surface_is_split_or_fullscreen(surf))
return;
+ if (surf->role == IVI_SURFACE_ROLE_REMOTE) {
+ struct ivi_output *remote_output =
+ ivi_layout_find_with_app_id(app_id, ivi);
+
+ /* if already active on a remote output do not
+ * attempt to activate it again */
+ if (remote_output && remote_output->active == surf)
+ return;
+ }
+
dsurf = surf->dsurface;
view = surf->view;