Re: [RFC weston v2] libweston: Commit subsurfaces before committing root surface

2020-01-30 Thread Pekka Paalanen
On Tue,  6 Mar 2018 17:57:15 +0100
Philipp Kerling  wrote:

> Committing the root surface triggers a commit of the xdg_surface state,
> which might require the subsurface state already being applied (e.g.
> when an xdg_toplevel needs to follow size constraints, the subsurfaces
> must be in the right position and size at the time this is verified).
> ---
>  libweston/compositor.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/libweston/compositor.c b/libweston/compositor.c
> index aec937bb..8589e390 100644
> --- a/libweston/compositor.c
> +++ b/libweston/compositor.c
> @@ -3191,12 +3191,12 @@ surface_commit(struct wl_client *client, struct 
> wl_resource *resource)
>   return;
>   }
>  
> - weston_surface_commit(surface);
> -
>   wl_list_for_each(sub, >subsurface_list, parent_link) {
>   if (sub->surface != surface)
>   weston_subsurface_parent_commit(sub, 0);
>   }
> +
> + weston_surface_commit(surface);
>  }
>  
>  static void

Hi,

I found this while going through my old unanswered emails. Your
rationale is quite sound.

I worry that this might break things like wl_subsurface.set_position
using the old vs. new parent surface origin as the reference point.
wl_surface.commit specification has some related wording about that.

OTOH, wl_subsurface.set_position is part of the parent state, so maybe
it doesn't matter. This would take code inspection to see if there is
any dependency between parent and sub-surface states.

If you are still interested, you can send this as a Gitlab merge
request.

https://gitlab.freedesktop.org/wayland/weston/blob/master/CONTRIBUTING.md


Thanks,
pq


pgpCLzph9iFbU.pgp
Description: OpenPGP digital signature
___
wayland-devel mailing list
wayland-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/wayland-devel


[RFC weston v2] libweston: Commit subsurfaces before committing root surface

2018-03-06 Thread Philipp Kerling
Committing the root surface triggers a commit of the xdg_surface state,
which might require the subsurface state already being applied (e.g.
when an xdg_toplevel needs to follow size constraints, the subsurfaces
must be in the right position and size at the time this is verified).
---
 libweston/compositor.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/libweston/compositor.c b/libweston/compositor.c
index aec937bb..8589e390 100644
--- a/libweston/compositor.c
+++ b/libweston/compositor.c
@@ -3191,12 +3191,12 @@ surface_commit(struct wl_client *client, struct 
wl_resource *resource)
return;
}
 
-   weston_surface_commit(surface);
-
wl_list_for_each(sub, >subsurface_list, parent_link) {
if (sub->surface != surface)
weston_subsurface_parent_commit(sub, 0);
}
+
+   weston_surface_commit(surface);
 }
 
 static void
-- 
2.16.2

___
wayland-devel mailing list
wayland-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/wayland-devel