mirror of
https://github.com/brl/mutter.git
synced 2025-03-20 18:25:04 +00:00

Previously the wl_resource and MetaWaylandGtkSurface corresponding to any client gtk_surface have been kept around until the exit of the client due to the client side destroy method not signaling the destruction to the server. Ideally the protocol would have specified a destroy request marked as destructor to handle this automatically, however this is no longer possible due to the destroy method being implicitly generated in the absence of an explicit request in the protocol. Adding a destroy request marked as destructor now would generate a new destroy method that unconditionally would send the request to the server, which would break clients running on servers not supporting that request. So instead of modifying the destroy request add a new "release" destructor, that indicates to the server that it can release the resource. This can be optionally be used by clients depending on the server protocol version. Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1307>