layout: Add missing hooks for other surface roles
[src/agl-compositor.git] / src / layout.c
index c078ac9..8879862 100644 (file)
@@ -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;