From 9ff4c2044d1dcca228db4d9f77730c0220269be3 Mon Sep 17 00:00:00 2001 From: Marius Vlad Date: Fri, 10 Jul 2020 15:01:28 +0300 Subject: layout: Add missing hooks for other surface roles We are missing the activate_by_default hooks for split, pop-up and and fullscreen roles. Part of that is due to the fact that these roles are handled a bit differently that the remote and desktop roles. Note, these hooks are different than the commit ones -- which are 'installed' a bit earlier. This means that there was still a possiblity one might've used that hook to retrieve the surface role for instance, and act accordingly. Reported-by: Scott Murray Signed-off-by: Marius Vlad Change-Id: I634bbb5915e65880c1d47363cf6dae529feac9d2 --- src/layout.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) 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; -- cgit 1.2.3-korg