[PATCH weston 5/5] ivi-shell: forward zero size to controller
From: Pekka Paalanen When surface size changes to zero, do not ignore it, but forward that change to the controller. A controller should do what's proper for a surface that just lost its content. Signed-off-by: Pekka Paalanen --- ivi-shell/hmi-controller.c | 2 ++ ivi-shell/ivi-shell.c | 3 --- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/ivi-shell/hmi-controller.c b/ivi-shell/hmi-controller.c index e9c9ab0..7c96439 100644 --- a/ivi-shell/hmi-controller.c +++ b/ivi-shell/hmi-controller.c @@ -660,6 +660,8 @@ set_notification_configure_surface(struct ivi_layout_surface *ivisurf, */ surface = ivi_layout_interface->surface_get_weston_surface(ivisurf); if (surface) { + /* XXX: needs to handle zero size by unmapping the surface */ + ivi_layout_interface->surface_set_source_rectangle( ivisurf, 0, 0, surface->width, surface->height); diff --git a/ivi-shell/ivi-shell.c b/ivi-shell/ivi-shell.c index c502c74..fe86c27 100644 --- a/ivi-shell/ivi-shell.c +++ b/ivi-shell/ivi-shell.c @@ -118,9 +118,6 @@ ivi_shell_surface_configure(struct weston_surface *surface, if (!ivisurf) return; - if (surface->width == 0 || surface->height == 0) - return; - if (ivisurf->width != surface->width || ivisurf->height != surface->height) { ivisurf->width = surface->width; -- 2.7.3 ___ wayland-devel mailing list wayland-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/wayland-devel
Re: [PATCH weston 5/5] ivi-shell: forward zero size to controller
Hi, this is indeed a change in behavior, there is a case in ivi-controller where the ivi surface has not width and height it is the time between the ivi surface is created but the corresponding wayland surface did not received any buffer so far. Of cause wayland surface might also get buffer attached with size zero but this case is not properly handled currently. I would like to skip this patch for the time being On 22.03.2016 15:48, Pekka Paalanen wrote: From: Pekka Paalanen When surface size changes to zero, do not ignore it, but forward that change to the controller. A controller should do what's proper for a surface that just lost its content. Signed-off-by: Pekka Paalanen --- ivi-shell/hmi-controller.c | 2 ++ ivi-shell/ivi-shell.c | 3 --- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/ivi-shell/hmi-controller.c b/ivi-shell/hmi-controller.c index e9c9ab0..7c96439 100644 --- a/ivi-shell/hmi-controller.c +++ b/ivi-shell/hmi-controller.c @@ -660,6 +660,8 @@ set_notification_configure_surface(struct ivi_layout_surface *ivisurf, */ surface = ivi_layout_interface->surface_get_weston_surface(ivisurf); if (surface) { + /* XXX: needs to handle zero size by unmapping the surface */ + ivi_layout_interface->surface_set_source_rectangle( ivisurf, 0, 0, surface->width, surface->height); diff --git a/ivi-shell/ivi-shell.c b/ivi-shell/ivi-shell.c index c502c74..fe86c27 100644 --- a/ivi-shell/ivi-shell.c +++ b/ivi-shell/ivi-shell.c @@ -118,9 +118,6 @@ ivi_shell_surface_configure(struct weston_surface *surface, if (!ivisurf) return; - if (surface->width == 0 || surface->height == 0) - return; - if (ivisurf->width != surface->width || ivisurf->height != surface->height) { ivisurf->width = surface->width; ___ wayland-devel mailing list wayland-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/wayland-devel
Re: [PATCH weston 5/5] ivi-shell: forward zero size to controller
On Wed, 23 Mar 2016 23:50:13 +0100 jeka wrote: > Hi, > > this is indeed a change in behavior, there is a case in ivi-controller > where the ivi surface has not width and height it is the time between > the ivi surface is created but the corresponding wayland surface did not > received any buffer so far. Of cause wayland surface might also get > buffer attached with size zero but this case is not properly handled > currently. > > I would like to skip this patch for the time being Hi, very well, I can easily rewrite this to not change the existing behavior. I just wonder, how do you get a configure call from Weston core with zero size then? Do you have applications that do the first commit without attaching a wl_buffer? Is there a need for them to do that? If an application actually has a need to commit before attaching a wl_buffer, I would presume that is because it would signal the controller to send some feedback that is needed to allocate and draw the buffer, e.g. the initial size via ivi_surface.configure event. In that case, it would be necessary to forward configure calls also with zero size rather than ignore them. But, I also don't see any mention of such in the ivi-application.xml protocol spec. Might be a good idea to do something like that anyway for the initial size, perhaps? That is, *if* it is desireable to require the client to commit after the ivi_application.surface_create request. It might not. Thanks, pq > On 22.03.2016 15:48, Pekka Paalanen wrote: > > From: Pekka Paalanen > > > > When surface size changes to zero, do not ignore it, but forward that > > change to the controller. A controller should do what's proper for a > > surface that just lost its content. > > > > Signed-off-by: Pekka Paalanen > > --- > > ivi-shell/hmi-controller.c | 2 ++ > > ivi-shell/ivi-shell.c | 3 --- > > 2 files changed, 2 insertions(+), 3 deletions(-) > > > > diff --git a/ivi-shell/hmi-controller.c b/ivi-shell/hmi-controller.c > > index e9c9ab0..7c96439 100644 > > --- a/ivi-shell/hmi-controller.c > > +++ b/ivi-shell/hmi-controller.c > > @@ -660,6 +660,8 @@ set_notification_configure_surface(struct > > ivi_layout_surface *ivisurf, > > */ > > surface = ivi_layout_interface->surface_get_weston_surface(ivisurf); > > if (surface) { > > + /* XXX: needs to handle zero size by unmapping the surface */ > > + > > ivi_layout_interface->surface_set_source_rectangle( > > ivisurf, 0, 0, surface->width, > > surface->height); > > diff --git a/ivi-shell/ivi-shell.c b/ivi-shell/ivi-shell.c > > index c502c74..fe86c27 100644 > > --- a/ivi-shell/ivi-shell.c > > +++ b/ivi-shell/ivi-shell.c > > @@ -118,9 +118,6 @@ ivi_shell_surface_configure(struct weston_surface > > *surface, > > if (!ivisurf) > > return; > > > > - if (surface->width == 0 || surface->height == 0) > > - return; > > - > > if (ivisurf->width != surface->width || > > ivisurf->height != surface->height) { > > ivisurf->width = surface->width; > > > ___ > wayland-devel mailing list > wayland-devel@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/wayland-devel pgpR_2QJSxFdG.pgp Description: OpenPGP digital signature ___ wayland-devel mailing list wayland-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/wayland-devel