summaryrefslogtreecommitdiffstats
path: root/src/layout.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/layout.c')
-rw-r--r--src/layout.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/layout.c b/src/layout.c
index c078ac9..8879862 100644
--- a/src/layout.c
+++ b/src/layout.c
@@ -366,6 +366,7 @@ void
ivi_layout_fullscreen_committed(struct ivi_surface *surface)
{
struct ivi_compositor *ivi = surface->ivi;
+ struct ivi_policy *policy = ivi->policy;
struct weston_desktop_surface *dsurface = surface->dsurface;
struct weston_surface *wsurface =
@@ -377,6 +378,10 @@ ivi_layout_fullscreen_committed(struct ivi_surface *surface)
struct weston_view *view = surface->view;
struct weston_geometry geom;
+ if (policy && policy->api.surface_activate_by_default &&
+ !policy->api.surface_activate_by_default(surface, surface->ivi))
+ return;
+
if (surface->view->is_mapped)
return;
@@ -423,6 +428,7 @@ void
ivi_layout_split_committed(struct ivi_surface *surface)
{
struct ivi_compositor *ivi = surface->ivi;
+ struct ivi_policy *policy = ivi->policy;
struct weston_desktop_surface *dsurface = surface->dsurface;
struct weston_surface *wsurface =
@@ -440,6 +446,10 @@ ivi_layout_split_committed(struct ivi_surface *surface)
x = woutput->x;
y = woutput->y;
+ if (policy && policy->api.surface_activate_by_default &&
+ !policy->api.surface_activate_by_default(surface, surface->ivi))
+ return;
+
if (surface->view->is_mapped)
return;
@@ -508,6 +518,7 @@ void
ivi_layout_popup_committed(struct ivi_surface *surface)
{
struct ivi_compositor *ivi = surface->ivi;
+ struct ivi_policy *policy = ivi->policy;
struct weston_desktop_surface *dsurface = surface->dsurface;
struct weston_surface *wsurface =
@@ -518,6 +529,10 @@ ivi_layout_popup_committed(struct ivi_surface *surface)
struct weston_view *view = surface->view;
+ if (policy && policy->api.surface_activate_by_default &&
+ !policy->api.surface_activate_by_default(surface, surface->ivi))
+ return;
+
if (surface->view->is_mapped)
return;