This commit makes it so a wl_output.done event is guaranteed to be sent with a
xdg_output.done event.

Humm, I am not sure I like changing xdg-output to rely on another protocol
event, it's looks like a weird mixup to me...

As noted below, this is idiomatic in the Wayland protocol. The
wl_surface.commit request applies xdg_surface's state.

Just to expand on this with my two-cents, many of the Wayland protocol objects are conceptually extensions of other protocol objects. xdg_surface extends wl_surface, xdg_toplevel extends xdg_surface, and if we want to go cross-extension-protocol, xdg_toplevel_decoration extends xdg_toplevel.

While this is 4 protocol objects, we're conceptually just dealing with a single surface's state. The protocol objects are simply adding new interfaces to that surface and are meaningless on their own. We want to keep that surface's state consistent, so they need to share the same synchronisation to ensure atomicity, which includes wl_output.commit and xdg_surface.configure.

So there is certainly precedence for relying on the events and requests of other protocols.

Now applying that to xdg_output, it's simply adding interfaces to an wl_output object, and isn't meaningful on its own. It only makes sense to synchronise it properly with wl_output.

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

Reply via email to