[PATCH wayland-protocols] xdg-output: deprecate the xdg_output.done event

Scott Anderson scott.anderson at collabora.com
Sun Apr 28 09:52:34 UTC 2019


>>> 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


More information about the wayland-devel mailing list