[PATCH weston] ivi-shell: Damage view below after unmapping

Pekka Paalanen ppaalanen at gmail.com
Fri Jan 27 15:53:29 UTC 2017


On Fri, 27 Jan 2017 15:11:41 +0000
"Ucan, Emre (ADITG/SW1)" <eucan at de.adit-jv.com> wrote:

> Hello Pekka,
> 
> Thank your for review.
> 
> When a view is just made invisible, the view below should be damaged.
> Normally, this should be done automatically in weston_view_update_transform.
> But invisinble views are not in compositor's view list. Therefore, they are not updated.
> This patch explicitly check, If the layer or surface of the ivi_view is made invisible in
> this commit_changes call. Then, it calls weston_view_damage_below.
> 
> Some other comments below:
> 
> 
> > -----Original Message-----
> > From: wayland-devel [mailto:wayland-devel-
> > bounces at lists.freedesktop.org] On Behalf Of Pekka Paalanen
> > Sent: Freitag, 27. Januar 2017 15:34
> > To: Ucan, Emre (ADITG/SW1)
> > Cc: wayland-devel at lists.freedesktop.org
> > Subject: Re: [PATCH weston] ivi-shell: Damage view below after unmapping
> > 
> > On Tue, 17 Jan 2017 12:30:56 +0000
> > "Ucan, Emre (ADITG/SW1)" <eucan at de.adit-jv.com> wrote:
> >   
> > > If ivilayer or ivisurf of ivi_view is made invisible in the
> > > commit_changes call, we have to damage the weston_view below this
> > > ivi_view. Otherwise content of this ivi_view will stay visible.  
> > 
> > Hi Emre,
> > 
> > from a quick check, I think it is indeed correct to call
> > weston_view_damage_below() when removing the view from the active
> > scenegraph. weston_view_geometry_dirty() would not be effective,
> > because the view would never hit weston_view_update_transform() via
> > weston_output_repaint().
> > 
> > At first sight, the commit message seems to have very little to do with
> > the full rewrite of commit_changes(). Could you explain and justify the
> > rewrite in the commit message?  
> 
> I did this change because of style considerations. It is better to use one for loop.
> Instead of three nested loops. Especially, if tabs are 8 spaces (:
> But you are right. It should send a different patch to fix this style issue.

Hi,

it's not just a style issue. You are iterating a completely different
list. Therefore the commit message should explain what is the
difference between the lists and consider what other things it will
change implicitly...

> > It makes
> > 	assert(ivi_view->on_layer == ivilayer);
> > in update_prop() apparently useless, as we no longer traverse the
> > ivi-layer's list of ivi-views and so will not check for its consistency.

...like this one.

As I don't have the ivi-layout workings in my memory, it would help
review if these details were written down, so it remains to just check
them.

> > > Signed-off-by: Emre Ucan <eucan at de.adit-jv.com>
> > > ---
> > >  ivi-shell/ivi-layout.c |   41 ++++++++++++++++++++++++-----------------
> > >  1 file changed, 24 insertions(+), 17 deletions(-)

> > Does something guarantee that ivilayer cannot be NULL?  
> 
> Yes, ivi_view_create function always creates an ivi_view with a non
> NULL ivilayer and ivisurf.

Ah, ok, it's an invariant.


> > Does this now skip update_prop() for things made invisible in this
> > cycle, while previously they went through update_prop()?
> > I think the commit message should explain why this change.  
> 
> Update_prop is skipped in current implementation too, if the surface
> or layer is invisible. See:
>                                 /*
>                                    * If ivilayer is invisible,
> weston_view of ivisurf doesn't
>                                    * need to be modified.
>                                    */
>                                   if
> (ivi_view->ivisurf->prop.visibility == false) continue;
> 

Oh, yes indeed.

> >   
> > >  		}
> > > +
> > > +		update_prop(iviscrn, ivilayer, ivi_view);
> > >  	}
> > >  }
> > >  
> > 
> > While I think the idea is good, the patch seems to be doing too
> > much in one go and without justification. But, I have also forgot
> > most of how ivi-layout works.
> > 
> > 
> > Thanks,
> > pq  
> 
> I will send a more simpler patch, which only fixes this issue.

Very good.

Thanks,
pq
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 801 bytes
Desc: OpenPGP digital signature
URL: <https://lists.freedesktop.org/archives/wayland-devel/attachments/20170127/9779ac89/attachment.sig>


More information about the wayland-devel mailing list