summaryrefslogtreecommitdiffstats
path: root/src/layout.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/layout.c')
-rw-r--r--src/layout.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/layout.c b/src/layout.c
index 829e1d5..dd4abb5 100644
--- a/src/layout.c
+++ b/src/layout.c
@@ -192,6 +192,8 @@ ivi_layout_activate_complete(struct ivi_output *output,
struct ivi_compositor *ivi = output->ivi;
struct weston_output *woutput = output->output;
struct weston_view *view = surf->view;
+ struct weston_seat *wseat = get_ivi_shell_weston_first_seat(ivi);
+ struct ivi_shell_seat *ivi_seat = get_ivi_shell_seat(wseat);
if (weston_view_is_mapped(view)) {
weston_layer_entry_remove(&view->layer_link);
@@ -221,6 +223,9 @@ ivi_layout_activate_complete(struct ivi_output *output,
weston_view_geometry_dirty(view);
weston_surface_damage(view->surface);
+ 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
* trip the enum such that we might end up with a modified output for
@@ -408,6 +413,9 @@ ivi_layout_fullscreen_committed(struct ivi_surface *surface)
struct weston_geometry geom =
weston_desktop_surface_get_geometry(dsurface);
+ struct weston_seat *wseat = get_ivi_shell_weston_first_seat(ivi);
+ struct ivi_shell_seat *ivi_seat = get_ivi_shell_seat(wseat);
+
bool is_fullscreen = weston_desktop_surface_get_fullscreen(dsurface);
bool is_dim_same =
geom.width == bg_output->output->width &&
@@ -470,6 +478,9 @@ ivi_layout_fullscreen_committed(struct ivi_surface *surface)
weston_view_geometry_dirty(view);
weston_surface_damage(view->surface);
+ if (ivi_seat)
+ ivi_shell_activate_surface(surface, ivi_seat, WESTON_ACTIVATE_FLAG_NONE);
+
shell_advertise_app_state(ivi, app_id,
NULL, AGL_SHELL_DESKTOP_APP_STATE_ACTIVATED);
@@ -516,6 +527,9 @@ ivi_layout_split_committed(struct ivi_surface *surface)
struct ivi_output *output = surface->split.output;
struct weston_output *woutput = output->output;
+ struct weston_seat *wseat = get_ivi_shell_weston_first_seat(ivi);
+ struct ivi_shell_seat *ivi_seat = get_ivi_shell_seat(wseat);
+
struct weston_view *view = surface->view;
struct weston_geometry geom;
@@ -586,6 +600,9 @@ ivi_layout_split_committed(struct ivi_surface *surface)
weston_view_geometry_dirty(view);
weston_surface_damage(view->surface);
+ if (ivi_seat)
+ ivi_shell_activate_surface(surface, ivi_seat, WESTON_ACTIVATE_FLAG_NONE);
+
wsurface->is_mapped = true;
surface->view->is_mapped = true;
@@ -621,6 +638,9 @@ ivi_layout_popup_committed(struct ivi_surface *surface)
struct ivi_output *output = surface->popup.output;
struct weston_output *woutput = output->output;
+ struct weston_seat *wseat = get_ivi_shell_weston_first_seat(ivi);
+ struct ivi_shell_seat *ivi_seat = get_ivi_shell_seat(wseat);
+
struct weston_view *view = surface->view;
if (policy && policy->api.surface_activate_by_default &&
@@ -651,6 +671,9 @@ ivi_layout_popup_committed(struct ivi_surface *surface)
weston_view_geometry_dirty(view);
weston_surface_damage(view->surface);
+ if (ivi_seat)
+ ivi_shell_activate_surface(surface, ivi_seat, WESTON_ACTIVATE_FLAG_NONE);
+
wsurface->is_mapped = true;
surface->view->is_mapped = true;