summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/layout.c19
1 files changed, 10 insertions, 9 deletions
diff --git a/src/layout.c b/src/layout.c
index 8950ac5..12c3524 100644
--- a/src/layout.c
+++ b/src/layout.c
@@ -381,7 +381,7 @@ ivi_layout_activate_complete(struct ivi_output *output,
if (output->active) {
/* keep the background surface mapped at all times */
if (output->active->role != IVI_SURFACE_ROLE_BACKGROUND &&
- !output->active->sticky) {
+ !output->active->sticky && output->active != surf) {
weston_surface_unmap(output->active->view->surface);
weston_view_move_to_layer(output->active->view, NULL);
}
@@ -408,12 +408,19 @@ ivi_layout_activate_complete(struct ivi_output *output,
if (!weston_surface_is_mapped(view->surface)) {
weston_surface_map(view->surface);
weston_view_move_to_layer(view, &ivi->normal.view_list);
+
+ weston_log("Activation completed for app_id %s, role %s, output %s\n",
+ app_id,
+ ivi_layout_get_surface_role_name(surf), output->name);
+
+ shell_send_app_state(ivi, app_id, AGL_SHELL_APP_STATE_ACTIVATED);
+
+ if (ivi_seat)
+ ivi_shell_activate_surface(surf, ivi_seat, WESTON_ACTIVATE_FLAG_NONE);
} else {
weston_view_update_transform(view);
}
- if (ivi_seat)
- ivi_shell_activate_surface(surf, ivi_seat, WESTON_ACTIVATE_FLAG_NONE);
/*
* the 'remote' role now makes use of this part so make sure we don't
@@ -425,12 +432,6 @@ ivi_layout_activate_complete(struct ivi_output *output,
surf->desktop.last_output = surf->desktop.pending_output;
surf->desktop.pending_output = NULL;
}
-
- weston_log("Activation completed for app_id %s, role %s, output %s\n",
- app_id,
- ivi_layout_get_surface_role_name(surf), output->name);
-
- shell_send_app_state(ivi, app_id, AGL_SHELL_APP_STATE_ACTIVATED);
}
static bool