From e80b883a47d0a2fe3d42f42d1eb56969728ea162 Mon Sep 17 00:00:00 2001 From: Isaac Freund Date: Mon, 26 Apr 2021 21:03:28 +0200 Subject: river-layout: update to v2 This implements the changes to the river-layout protocol proposed in the previous commit removing river-options. --- protocol/river-layout-v1.xml | 201 ------------------------------------------- 1 file changed, 201 deletions(-) delete mode 100644 protocol/river-layout-v1.xml (limited to 'protocol/river-layout-v1.xml') diff --git a/protocol/river-layout-v1.xml b/protocol/river-layout-v1.xml deleted file mode 100644 index 2ddcea3..0000000 --- a/protocol/river-layout-v1.xml +++ /dev/null @@ -1,201 +0,0 @@ - - - - Copyright 2020-2021 The River Developers - - Permission to use, copy, modify, and/or distribute this software for any - purpose with or without fee is hereby granted, provided that the above - copyright notice and this permission notice appear in all copies. - - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - - - - This protocol specifies a way for clients to propose arbitrary positions and - dimensions for a set of views on a specific output of a compositor through - the river_layout_v1 object. - - This set of views is logically structured as a simple list. Views - in this list cannot be individually addressed, instead the order of - requests/events is significant. - - The entire set of proposed positions and dimensions for the views in the - list are called a layout. Due to their list heritage, layouts are also - logically strictly linear; Any complex underlying data structure a client - may use when generating the layout is lost in transmission. This is an - intentional limitation. - - Note that the client may need to handle multiple layout demands per - river_layout_v1 object simultaneously. - - Warning! The protocol described in this file is currently in the testing - phase. Backward compatible changes may be added together with the - corresponding interface version bump. Backward incompatible changes can - only be done by creating a new major version of the extension. - - - - - A global factory for river_layout_v1 objects. - - - - - This request indicates that the client will not use the - river_layout_manager object any more. Objects that have been created - through this instance are not affected. - - - - - - This creates a new river_layout_v1 object for the given wl_output. - - All layout related communication is done through this interface. - - The namespace is used by the compositor to decide which river_layout_v1 - object will receive layout demands for the output. - - The namespace is required to be be unique per-output. Furthermore, - two separate clients may not share a namespace on separate outputs. If - these conditions are not upheld, the the namespace_in_use event will - be sent directly after creation of the river_layout_v1 object. - - - - - - - - - - This interface allows clients to receive layout demands from the - compositor for a specific output and subsequently propose positions and - dimensions of individual views. - - - - - - - - - - This request indicates that the client will not use the river_layout_v1 - object any more. - - - - - - After this event is sent, all requests aside from the destroy event - will be ignored by the server. If the client wishes to try again with - a different namespace they must create a new river_layout_v1 object. - - - - - - The compositor sends this event to inform the client that it requires a - layout for a set of views. - - The usable width and height height indicate the space in which the - client can safely position views without interfering with desktop - widgets such as panels. - - The serial of this event is used to identify subsequent events and - request as belonging to this layout demand. Beware that the client - might need to handle multiple layout demands at the same time. - - The server will ignore responses to all but the most recent - layout demand. Thus, clients are only required to respond to the most - recent layout_demand received. If a newer layout_demand is received - before the client has finished responding to an old demand, the client - may abort work on the old demand as any further work would be wasted. - - - - - - - - - - - This event is sent by the server as part of the layout demand with - matching serial. It provides additional information about one of - the views to be arranged. - - Every view part of the layout demand is advertised exactly once, - in the order of the view list. - - - - - - - - - This event is sent by the server as the last event of the layout - demand with matching serial, after all advertise_view events. - - - - - - - This request proposes a size and position of a view in the layout demand - with matching serial. - - Pushed view dimensions apply to the views in the same order they were - advertised. That is, the first push_view_dimensions request applies - to the first view advertised, the second to the second, and so on. - - A client must propose position and dimensions for the entire set of - views. Proposing too many or too few view dimensions is a protocol error. - - This request may be sent before the corresponding view has been - advertised. - - The x and y coordinates are relative to the usable area of the output, - with (0,0) as the top left corner. - - - - - - - - - - - This request indicates that the client is done pushing dimensions - and the compositor may apply the layout. This completes the layout - demand with matching serial, any other requests sent with the serial - are a protocol error. - - The compositor is free to use this proposed layout however it chooses, - including ignoring it. - - - - - - - The client may use this request to inform the compositor that one or - muliple of the parameters it uses to generate layouts have changed. - - If the client is responsible for the current view layout, the compositor - may decide to send a new layout demand to update the layout. - - - - -- cgit v1.2.3