git.lucas.co / cce-compositor
Wayland compositor (wlroots)
git clone https://git.lucas.co/cce-compositor.git

commit45d13a184a58f9d3acb753238db98f87ab884ea8
parent8fb7516942
authorIsaac Freund <[email protected]>
date2021-01-18 01:34
river-option: compositor may ignore set requests

This allows the compositor to restrict options to a certain set of
values, which can be desirable if the options affect compositor
behavior.

This was always the intended behavior of the protocol, but now it is
explicitly stated.

 protocol/river-options-unstable-v1.xml | 37 ++++++++++++++++++++++++----------
 1 file changed, 26 insertions(+), 11 deletions(-)

diff --git a/protocol/river-options-unstable-v1.xml b/protocol/river-options-unstable-v1.xml
index 87274e9..9e393ba 100644
--- a/protocol/river-options-unstable-v1.xml
+++ b/protocol/river-options-unstable-v1.xml
@@ -110,27 +110,38 @@
 
     <request name="set_int_value">
       <description summary="set the value of the option">
-        If the option is either unset or set to a value of type int,
-        this request sets the value of the option as well as the type if
-        previously unset. Otherwise the request is ignored.
+        If the option is either unset or set to a value of type int, this
+        request asks the compositor to set the value of the option as well
+        as the type if previously unset. The compositor is not required to
+        honor this request.
+
+        If the option is already set and is not of type int, this request does nothing.
       </description>
       <arg name="value" type="int"/>
     </request>
 
     <request name="set_uint_value">
       <description summary="set the value of the option">
-        If the option is either unset or set to a value of type uint,
-        this request sets the value of the option as well as the type if
-        previously unset. Otherwise the request is ignored.
+        If the option is either unset or set to a value of type uint, this
+        request asks the compositor to set the value of the option as well
+        as the type if previously unset. The compositor is not required to
+        honor this request.
+
+        If the option is already set and is not of type uint, this request
+        does nothing.
       </description>
       <arg name="value" type="uint"/>
     </request>
 
     <request name="set_fixed_value">
       <description summary="set the value of the option">
-        If the option is either unset or set to a value of type fixed,
-        this request sets the value of the option as well as the type if
-        previously unset. Otherwise the request is ignored.
+        If the option is either unset or set to a value of type fixed, this
+        request asks the compositor to set the value of the option as well
+        as the type if previously unset. The compositor is not required to
+        honor this request.
+
+        If the option is already set and is not of type fixed, this request
+        does nothing.
       </description>
       <arg name="value" type="fixed"/>
     </request>
@@ -138,8 +149,12 @@
     <request name="set_string_value">
       <description summary="set the value of the option">
         If the option is either unset or set to a value of type string,
-        this request sets the value of the option as well as the type if
-        previously unset. Otherwise the request is ignored.
+        this request asks the compositor to set the value of the option as
+        well as the type if previously unset. The compositor is not required
+        to honor this request.
+
+        If the option is already set and is not of type string, this request
+        does nothing.
       </description>
       <arg name="value" type="string" allow-null="true"/>
     </request>