diff options
author | Lloyd Pique <lpique@google.com> | 2021-09-22 17:01:51 -0700 |
---|---|---|
committer | Lloyd Pique <lpique@google.com> | 2021-09-24 21:41:08 +0000 |
commit | 2851a546acca2827af8956b460ee46e73324b7cd (patch) | |
tree | 99b8f48bb33e0ee6a0f5e263782f5d6a38e08751 | |
parent | 9a136557f4d6540c9b049394942e0fab44b48146 (diff) | |
download | wayland-protocols-android12-qpr3-s4-release.tar.gz |
Import chromium.org protocol changesandroid-12.1.0_r9android-12.1.0_r8android-12.1.0_r7android-12.1.0_r22android-12.1.0_r21android-12.1.0_r20android-12.1.0_r19android-12.1.0_r11android-12.1.0_r10android12L-devandroid12-qpr3-s7-releaseandroid12-qpr3-s6-releaseandroid12-qpr3-s5-releaseandroid12-qpr3-s4-releaseandroid12-qpr3-s3-releaseandroid12-qpr3-s2-releaseandroid12-qpr3-s1-releaseandroid12-qpr3-release
State as of Chromium sha1 39a3224
Bug: 200316779
Test: m libcuttlefish_wayland_server libcuttlefish_webrtc vnc_server
Change-Id: I736e62dac342c8a89ab4401d85af47cfe714507f
Merged-In: I736e62dac342c8a89ab4401d85af47cfe714507f
11 files changed, 1601 insertions, 6 deletions
diff --git a/chromium.org/unstable/aura-shell/aura-shell.xml b/chromium.org/unstable/aura-shell/aura-shell.xml index bbc81a3..51d652b 100644 --- a/chromium.org/unstable/aura-shell/aura-shell.xml +++ b/chromium.org/unstable/aura-shell/aura-shell.xml @@ -24,7 +24,7 @@ DEALINGS IN THE SOFTWARE. </copyright> - <interface name="zaura_shell" version="18"> + <interface name="zaura_shell" version="24"> <description summary="aura_shell"> The global interface exposing aura shell capabilities is used to instantiate an interface extension for a wl_surface object. @@ -93,9 +93,32 @@ </description> <arg name="id" type="uint" summary="ID of a single bug fix"/> </event> + + <event name="desks_changed" since="22"> + <description summary="sends names of desks"> + Notifies when there is a change in global desks state. This is emitted on + desk name changes, desk addition/removal or desks are reordered. + "desk_names" argument contains the set of null terminated strings as names of desks. + </description> + <arg name="desk_names" type="array" summary="an array of existing desks' names"/> + </event> + <event name="desk_activation_changed" since="22"> + <description summary="sends the index of the active desk"> + Notifies when there is a change of the active desk. + </description> + <arg name="active_desk_index" type="int" summary="index of the active desk"/> + </event> + <!-- Version 24 additions --> + <event name="activated" since="24"> + <description summary="activated surface changed"> + Notifies client that the activated surface changed. + </description> + <arg name="gained_active" type="object" interface="wl_surface" allow-null="true"/> + <arg name="lost_active" type="object" interface="wl_surface" allow-null="true"/> + </event> </interface> - <interface name="zaura_surface" version="18"> + <interface name="zaura_surface" version="23"> <description summary="aura shell interface to a wl_surface"> An additional interface to a wl_surface object, which allows the client to access aura shell specific functionality for surface. @@ -334,6 +357,93 @@ </description> <arg name="id" type="int" summary="window session id"/> </request> + + <!-- Version 19 additions --> + <request name="set_can_go_back" since="19"> + <description summary="Set the minimize-on-back-gesture behavior."> + Sets that the surface can go back as per its navigation list. + This allows the server to react to by minimizing the window upon a + system wide back gesture. + </description> + </request> + + <request name="unset_can_go_back" since="19"> + <description summary="Unset the minimize-on-back-gesture behavior."> + Unsets that the surface can go back as per its navigation list. + See above. + </description> + </request> + + <!-- Version 20 additions --> + <request name="set_pip" since="20"> + <description summary="Set pip for the surface."> + Requests that the surface is set to Picture-in-Picture (PIP). + </description> + </request> + + <request name="unset_pip" since="20"> + <description summary="Unset pip for the surface."> + Requests that the surface is unset from Picture-in-Picture (PIP). + </description> + </request> + + <request name="set_aspect_ratio" since="20"> + <description summary="Set aspect ratio for the surface."> + Sets the aspect ratio of the surface. + </description> + <arg name="width" type="int"/> + <arg name="height" type="int"/> + </request> + + <!-- Version 21 additions --> + <enum name="occlusion_state"> + <description summary="surface occlusion state"> + Describes the occlusion state of a surface. + </description> + <entry name="unknown" value="0" summary="The surface's occlusion state isn't tracked"/> + <entry name="visible" value="1" summary="The surface is visible"/> + <entry name="occluded" value="2" summary="The surface is occluded"/> + <entry name="hidden" value="3" summary="The surface is not visible"/> + </enum> + + <event name="occlusion_state_changed" since="21"> + <description summary="Notify the client that the occlusion state changed"> + Notifies the client that the occlusion state of a window has changed. Clients + will only receive these messages if they previously request occlusion tracking + via set_occlusion_tracking for a particular surface. + </description> + <arg name="mode" type="uint" enum="occlusion_state"/> + </event> + + <!-- Version 22 additions --> + <request name="move_to_desk" since="22"> + <description summary="move to desk"> + If |index| equals -1, requests that the server toggles whether client + is visible on all workspaces. + If |index| is not -1, requests that the server moves the client to the desk at + |index|. + </description> + <arg name="index" type="int"/> + </request> + + <event name="desk_changed" since="22"> + <description summary="window desk state changed"> + Notifies when there is a change in the desk state of a window. + This is emitted when a window is moved to another desk or + when its assigned-to-all-desks state changes. + </description> + <arg name="state" type="int" summary="index of desk or -1 for a window assigned to all desks"/> + </event> + + <!-- Version 23 additions --> + <request name="set_initial_workspace" since="23"> + <description summary="initial workspace for restore"> + If |initial_workspace| equals '-1', a window is restored and visible on all workspaces, + Otherwise, set the initial workspace to restore the window to the corresponding workspace. + This is not double buffered and must be set before attaching a buffer. + </description> + <arg name="initial_workspace" type="string" summary="intial workspace for restoring or '-1' for visible on all workspaces"/> + </request> </interface> <interface name="zaura_output" version="6"> diff --git a/chromium.org/unstable/color-space/README b/chromium.org/unstable/color-space/README new file mode 100644 index 0000000..eca7471 --- /dev/null +++ b/chromium.org/unstable/color-space/README @@ -0,0 +1,4 @@ +Color space protocol + +Maintainers: +Jeffrey Kardatzke <jkardatzke@chromium.org> diff --git a/chromium.org/unstable/color-space/color-space-unstable-v1.xml b/chromium.org/unstable/color-space/color-space-unstable-v1.xml new file mode 100644 index 0000000..4663556 --- /dev/null +++ b/chromium.org/unstable/color-space/color-space-unstable-v1.xml @@ -0,0 +1,192 @@ +<?xml version="1.0" encoding="UTF-8"?> +<protocol name="color_space_unstable_v1"> + + <copyright> + Copyright 2019 The Chromium Authors. + + Permission is hereby granted, free of charge, to any person obtaining a + copy of this software and associated documentation files (the "Software"), + to deal in the Software without restriction, including without limitation + the rights to use, copy, modify, merge, publish, distribute, sublicense, + and/or sell copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice (including the next + paragraph) shall be included in all copies or substantial portions of the + Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + DEALINGS IN THE SOFTWARE. + </copyright> + + <interface name="zcr_color_space_v1" version="1"> + <description summary="Protocol for setting the color space of a wl_surface"> + This protocol specifies a an interface used to set the color space + information (primaries, transfer function, range, matrix) for a wl_surface + to enable correct color output for non-sRGB content. + + Warning! The protocol described in this file is experimental and backward + incompatible changes may be made. Backward compatible changes may be added + together with the corresponding interface version bump. Backward + incompatible changes are done by bumping the version number in the + protocol and interface names and resetting the interface version. Once the + protocol is to be declared stable, the 'z' prefix and the version number + in the protocol and interface names are removed and the interface version + number is reset. + </description> + + <request name="destroy" type="destructor"> + <description summary="unbinds the color space interface"> + Informs the server this interface will no longer be used. This does not + have any effect on wl_surface objects that have been modified through + this interface. + </description> + </request> + + <enum name="error"> + <entry name="invalid_primaries" value="0" + summary="the specified primaries are invalid"/> + <entry name="invalid_transfer_function" value="1" + summary="the specified transfer function is invalid"/> + <entry name="invalid_range" value="2" + summary="the specified range is invalid"/> + <entry name="invalid_matrix" value="3" + summary="the specified matrix is invalid"/> + </enum> + + <enum name="primaries"> + <entry name="bt709" value="0" + summary="BT.709, sRGB (HDTV)"/> + <entry name="bt470m" value="1" + summary="NTSC (Original, replaced by smpte170m)"/> + <entry name="bt470bg" value="2" + summary="PAL/SECAM (Original, replaced by smpte170m)"/> + <entry name="smpte170m" value="3" + summary="NTSC/PAL (SDTV)"/> + <entry name="smpte240m" value="4" + summary="HDTV (Original, replaced by bt709)"/> + <entry name="film" value="5" + summary="Generic film (color filters using Illuminant C)"/> + <entry name="bt2020" value="6" + summary="UHDTV"/> + <entry name="smptest428_1" value="7" + summary="D-Cinema"/> + <entry name="smptest431_2" value="8" + summary="DCI-P3"/> + <entry name="smptest432_1" value="9" + summary="Display P3"/> + <entry name="xyz_d50" value="10" + summary="XYZ color space with D50 white point"/> + <entry name="adobe_rgb" value="11" + summary="Adobe RGB"/> + </enum> + + <enum name="transfer_function"> + <entry name="bt709" value="0" + summary="BT.709, sRGB (HDTV)"/> + <entry name="gamma18" value="1" + summary="Gamma curve 1.8"/> + <entry name="gamma22" value="2" + summary="Gamma curve 2.2"/> + <entry name="gamma24" value="3" + summary="Gamma curve 2.4"/> + <entry name="gamma28" value="4" + summary="Gamma curve 2.8"/> + <entry name="smpte170m" value="5" + summary="NTSC/PAL (SDTV)"/> + <entry name="smpte240m" value="6" + summary="HDTV (Original, replaced by bt709)"/> + <entry name="linear" value="7" + summary="Linear transfer function"/> + <entry name="log" value="8" + summary="Logarithmic transfer function"/> + <entry name="log_sqrt" value="9" + summary="Logarithmic square root transfer function"/> + <entry name="iec61966_2_4" value="10" + summary="IEC 61966-2-4 transfer function"/> + <entry name="bt1361_ecg" value="11" + summary="ITU-BT.1361 ECG"/> + <entry name="iec61966_2_1" value="12" + summary="sRGB, IEC 61966-2-1 transfer function"/> + <entry name="bt2020_10" value="13" + summary="BT.2020 10 bit transfer function"/> + <entry name="bt2020_12" value="14" + summary="BT.2020 12 bit transfer function"/> + <entry name="smptest2084" value="15" + summary="SMPTE ST 2084 (PQ)"/> + <entry name="smptest428_1" value="16" + summary="D-Cinema transfer function"/> + <entry name="arib_std_b67" value="17" + summary="HLG transfer function"/> + <entry name="smptest2084_non_hdr" value="18" + summary="This is an ad-hoc transfer function that decodes SMPTE + 2084 content into a [0, 1] range more or less suitable for + viewing on a non-hdr display"/> + <entry name="iec61966_2_1_hdr" value="19" + summary="The same as IEC61966_2_1 on the interval [0, 1], with the + nonlinear segment continuing beyond 1 and point symmetry + defining values below 0"/> + <entry name="linear_hdr" value="20" + summary="The same as linear but is defined for all real values"/> + </enum> + + <enum name="matrix"> + <entry name="rgb" value="0" + summary="Standard RGB components"/> + <entry name="bt709" value="1" + summary="BT.709 (HDTV) YUV"/> + <entry name="fcc" value="2" + summary="NTSC (Original, replaced by smpte170m) YUV"/> + <entry name="bt470bg" value="3" + summary="PAL/SECAM (Original, replaced by smpte170m) YUV"/> + <entry name="smpte170m" value="4" + summary="NTSC/PAL (SDTV) YUV"/> + <entry name="smpte240m" value="5" + summary="HDTV (Original, replaced by bt709) YUV"/> + <entry name="ycocg" value="6" + summary="YCoCg components"/> + <entry name="bt2020_ncl" value="7" + summary="BT.2020 YUV"/> + <entry name="bt2020_cl" value="8" + summary="BT.2020 RYB"/> + <entry name="ydzdx" value="9" + summary="YDZDX components"/> + <entry name="gbr" value="10" + summary="GBR component layout"/> + </enum> + + <enum name="range"> + <entry name="limited" value="0" + summary="Limited (16-235 for 8-bit)"/> + <entry name="full" value="1" + summary="Full (0-255 for 8-bit)"/> + </enum> + + <request name="set_color_space"> + <description summary="sets the color space for a surface"> + This sets the full set of color space properties for a surface to enable + proper color conversion for compositing. If any of these are invalid + then an error is raised. This is double-buffered and takes effect on + the next commit of the surface. It's the responsibility of the + compositor to do the necessary color conversions. + </description> + <arg name="surface" type="object" interface="wl_surface" + summary="surface"/> + <arg name="primaries" type="uint" + summary="primaries and white point"/> + <arg name="transfer_function" type="uint" + summary="electro-optical transfer function"/> + <arg name="matrix" type="uint" + summary="matrix for conversion to rgb" /> + <arg name="range" type="uint" + summary="value range used by the pixels"/> + </request> + + </interface> + +</protocol> diff --git a/chromium.org/unstable/extended-drag/README b/chromium.org/unstable/extended-drag/README new file mode 100644 index 0000000..a194b3a --- /dev/null +++ b/chromium.org/unstable/extended-drag/README @@ -0,0 +1,4 @@ +Extended Drag protocol + +Maintainers: +Nick Yamane <nickdiego@igalia.com> diff --git a/chromium.org/unstable/extended-drag/extended-drag-unstable-v1.xml b/chromium.org/unstable/extended-drag/extended-drag-unstable-v1.xml new file mode 100644 index 0000000..cb4c1dc --- /dev/null +++ b/chromium.org/unstable/extended-drag/extended-drag-unstable-v1.xml @@ -0,0 +1,201 @@ +<?xml version="1.0" encoding="UTF-8"?> +<protocol name="extended_drag_unstable_v1"> + + <copyright> + Copyright 2020 The Chromium Authors. + + Permission is hereby granted, free of charge, to any person obtaining a + copy of this software and associated documentation files (the "Software"), + to deal in the Software without restriction, including without limitation + the rights to use, copy, modify, merge, publish, distribute, sublicense, + and/or sell copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice (including the next + paragraph) shall be included in all copies or substantial portions of the + Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + DEALINGS IN THE SOFTWARE. + </copyright> + + <interface name="zcr_extended_drag_v1" version="1"> + <description summary="extends DnD protocol with some advanced features"> + The zcr_extended_drag_v1 interface extends the Wayland drag-and-drop with + features unsurpported by the core protocol. Such as, making toplevel shell + surfaces "draggable", as well as making them "snappable" into and out of + other surfaces as they are dragged around. + + A common use case for this is a Chromium-like tab/window dragging UX, + where the user is able to drag a tab (or any other kind of UI piece) out + of its original window, into a new surface anchored to the pointer cursor, + similar to a regular drag icon but with enhanced and more configurable + capabilities. + + Warning! The protocol described in this file is experimental and + backward incompatible changes may be made. Backward compatible changes + may be added together with the corresponding uinterface version bump. + Backward incompatible changes are done by bumping the version number in + the protocol and uinterface names and resetting the interface version. + Once the protocol is to be declared stable, the 'z' prefix and the + version number in the protocol and interface names are removed and the + interface version number is reset. + </description> + + <enum name="options" bitfield="true"> + <description summary="extended drag configuration flags."> + Bitmask flags that can be used to configure how the drag session will + operate. By default no additional option is set. + + Source client might set allow_swallow option to tell the compositor that + the dragged UI item can be snapped out and into other surfaces + (swallowed/unswallowed), eg: Chromium's tab dragging UX. + + allow_drop_no_target controls how source and destination clients are + notified when the drop happens, if it is set the DnD operation is + considered successfully finished regardless the drop location (eg: + outside any shell surface or there is no target that can accept it). + + lock_cursor might be used to keep the cursor shape locked during the + extended drag session, regardless current the mime types, dnd action + negotiation status. + </description> + <entry name="default" value="0"/> + <entry name="allow_swallow" value="1"/> + <entry name="allow_drop_no_target" value="2"/> + <entry name="lock_cursor" value="4"/> + </enum> + + <request name="get_extended_drag_source"> + <description summary="get an extended_drag_source for a wl_data_source"> + Create an extended drag source object. See zcr_extended_drag_source_v1 + interface for details. + </description> + <arg name="id" type="new_id" interface="zcr_extended_drag_source_v1"/> + <arg name="data_source" type="object" interface="wl_data_source"/> + <arg name="options" type="uint" enum="zcr_extended_drag_v1.options"/> + </request> + + <request name="get_extended_drag_offer"> + <description summary="get an extended_drag_offer for a wl_data_offer"> + Create an extended drag offer object. See zcr_extended_drag_offer_v1 + interface for details. + </description> + <arg name="id" type="new_id" interface="zcr_extended_drag_offer_v1"/> + <arg name="data_offer" type="object" interface="wl_data_offer"/> + </request> + </interface> + + <interface name="zcr_extended_drag_source_v1" version="1"> + <description summary="extensions for the standard drag data source"> + The zcr_extended_drag_source_v1 interface extends the wl_data_source with + features unsurpported by the standard drag-and-drop protocol. + </description> + + <request name="destroy" type="destructor"> + <description summary="destroy the extended drag source object"/> + </request> + + <request name="drag"> + <description summary="Update the dragged surface"> + Update the dragged surface. If null is passed, the dragged surface gets + unset, making it to not being moved anymore under the pointer cursor. + Otherwise, it will be set as the dragged surface, making it to be visually + anchored to the pointer cursor. surface is expected to have a toplevel + shell surface role assigned, which allows it to be dropped smoothly into + an arbitrary location of the shell, so turning it instantly into a + regular toplevel window, which not possible with the standard DND + protocol. + + x and y offsets are described in surface-local coordinates, with no + scale applied, that determine how the surface must be positioned + relative to the cursor location, similar to drag icon offsets in + standard DND operations. + </description> + <arg name="surface" type="object" interface="wl_surface" allow-null="true" summary="drag icon surface"/> + <arg name="x_offset" type="int" summary="dragged surface x offset"/> + <arg name="y_offset" type="int" summary="dragged surface y offset"/> + </request> + + <event name="swallow"> + <description summary="the receiving client requested to swallow the drag."> + The receiving client has requested to swallow the dragged surface. + Which, in a drag operation involving 2 or more clients, can be used to + negotiate when the dragged surface is incorporated (aka: merged) into + its UI. See zcr_extended_drag_offer_v1::swallow request for more + details. + </description> + <arg name="mime_type" type="string" summary="mime type to be swallowed by the client"/> + </event> + + <event name="unswallow"> + <description summary="the receiving client requested to unswallow the drag."> + The receiving client has requested to unswallow the dragged surface. + Which, in a drag operation involving more than a single client, can be + used to negotiate when the dragged surface is snapped out of the + receiving client's UI. + + X and Y offsets are expressed in surface-local coordinates, with no + scale applied, and describe how the surface must be positioned relative + to the cursor location, similar to drag icon offsets in standard DND + operations. Note that these coordinates are local to the unswallowed + surface, created and owned by the source client, so it can be used + rightaway to call drag(surface, x_offset, y_offset) in response to + receiving client's request. + </description> + <arg name="mime_type" type="string" allow-null="true" summary="mime type accepted by the client"/> + <arg name="x_offset" type="int" summary="dragged surface x offset"/> + <arg name="y_offset" type="int" summary="dragged surface y offset"/> + </event> + </interface> + + <interface name="zcr_extended_drag_offer_v1" version="1"> + <description summary="extensions for the standard drag data offer."> + The zcr_extended_drag_offer_v1 interface extends the wl_data_offer with + features unsurpported by the standard drag-and-drop protocol. + </description> + + <request name="destroy" type="destructor"> + <description summary="destroy the extended drag offer object"/> + </request> + + <request name="swallow"> + <description summary="Requests the drag source to swallow the drag."> + Requests the drag source to swallow the dragged surface. This means the + receiving client accepts and will incorporate the dragged surface into + its UI. For example, a browser tab is dragged and snapped to an icon\ + grid. + </description> + <arg name="serial" type="uint" summary="serial number of the swallow request"/> + <arg name="mime_type" type="string" allow-null="true" summary="mime type being swallowed"/> + </request> + + <request name="unswallow"> + <description summary="Requests the drag source to unswallow the drag."> + Requests the drag source to unswallow the dragged surface. Which means + that the receiving client wants to undo a previously swallowed dragged + surface, i.e: detach it from its UI. + + X and Y offsets are expressed in surface-local coordinates, with no + scale applied and describe how the surface must be positioned relative + to the cursor location, similar to drag icon offsets in standard DND + operations. Note that these coordinates are local to the currently + focused surface, owned by the receiving client, which may differ from + corresponding offsets at source side (which owns the unswallowed + surface), for instance, when the receiving surface is on a wl_output + with different scale value. Compositor handles such conversion before + delivering the zcr_extended_drag_source_v1::swallow event counterpart + to the source client. + </description> + <arg name="serial" type="uint" summary="serial number of the unswallow request"/> + <arg name="mime_type" type="string" summary="mime type being unswallowed"/> + <arg name="x_offset" type="int" summary="dragged surface x offset"/> + <arg name="y_offset" type="int" summary="dragged surface y offset"/> + </request> + </interface> +</protocol> diff --git a/chromium.org/unstable/keyboard/keyboard-extension-unstable-v1.xml b/chromium.org/unstable/keyboard/keyboard-extension-unstable-v1.xml index 9527678..a42ee7d 100644 --- a/chromium.org/unstable/keyboard/keyboard-extension-unstable-v1.xml +++ b/chromium.org/unstable/keyboard/keyboard-extension-unstable-v1.xml @@ -24,7 +24,7 @@ DEALINGS IN THE SOFTWARE. </copyright> - <interface name="zcr_keyboard_extension_v1" version="1"> + <interface name="zcr_keyboard_extension_v1" version="2"> <description summary="extends wl_keyboard with ack_key events"> Allows a wl_keyboard to send ack_key requests for each key event of the keyboard to the server. @@ -56,7 +56,7 @@ </request> </interface> - <interface name="zcr_extended_keyboard_v1" version="1"> + <interface name="zcr_extended_keyboard_v1" version="2"> <description summary="extension of wl_keyboard protocol"> The zcr_extended_keyboard_v1 interface extends the wl_keyboard interface with requests to notify whether sent key events are handled or not by @@ -79,5 +79,22 @@ <arg name="serial" type="uint"/> <arg name="handled" type="uint" enum="handled_state"/> </request> + + <event name="peek_key" since="2"> + <description summary="peek a key event"> + A key event which will be soon delivered to the application via + wl_keyboard::key. If text_input consumes the key event, + wl_keyboard::key is not delivered, but this event is still delivered + to the application. + All arguments are the exactly same one of the following wl_keyboard::key, + including serial. + </description> + <arg name="serial" type="uint" summary="serial number of the key event"/> + <arg name="time" type="uint" summary="timestamp with millisecond granularity"/> + <arg name="key" type="uint" summary="key that produced the event"/> + <!-- Dropped enum="key_state" from state for the workaround of crbug.com/1194855. --> + <arg name="state" type="uint" summary="physical state of the key"/> + </event> + </interface> </protocol> diff --git a/chromium.org/unstable/remote-shell/remote-shell-unstable-v1.xml b/chromium.org/unstable/remote-shell/remote-shell-unstable-v1.xml index 58478d4..cfc9c85 100644 --- a/chromium.org/unstable/remote-shell/remote-shell-unstable-v1.xml +++ b/chromium.org/unstable/remote-shell/remote-shell-unstable-v1.xml @@ -946,7 +946,7 @@ <entry name="zoom" value="32" summary="a mask to turn the maximize_restore button to zoom button"/> <entry name="center" value="64" - summary="a customizable, center-aligned button"/> + summary="a customizable, center-aligned button"/> </enum> <request name="set_frame_buttons" since="13"> diff --git a/chromium.org/unstable/remote-shell/remote-shell-unstable-v2.xml b/chromium.org/unstable/remote-shell/remote-shell-unstable-v2.xml new file mode 100644 index 0000000..622ebea --- /dev/null +++ b/chromium.org/unstable/remote-shell/remote-shell-unstable-v2.xml @@ -0,0 +1,978 @@ +<?xml version="1.0" encoding="UTF-8"?> +<protocol name="remote_shell_unstable_v2"> + + <copyright> + Copyright 2021 The Chromium Authors. + + Permission is hereby granted, free of charge, to any person obtaining a + copy of this software and associated documentation files (the "Software"), + to deal in the Software without restriction, including without limitation + the rights to use, copy, modify, merge, publish, distribute, sublicense, + and/or sell copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice (including the next + paragraph) shall be included in all copies or substantial portions of the + Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + DEALINGS IN THE SOFTWARE. + </copyright> + + <description summary="Create remote desktop-style surfaces"> + remote_shell allows clients to turn a wl_surface into a "real window" + which can be stacked and activated by the user. + + Warning! The protocol described in this file is experimental and backward + incompatible changes may be made. Backward compatible changes may be added + together with the corresponding interface version bump. Backward + incompatible changes are done by bumping the version number in the protocol + and interface names and resetting the interface version. Once the protocol + is to be declared stable, the 'z' prefix and the version number in the + protocol and interface names are removed and the interface version number is + reset. + </description> + + <interface name="zcr_remote_shell_v2" version="1"> + <description summary="remote_shell"> + The global interface that allows clients to turn a wl_surface into a + "real window" which is remotely managed but can be stacked, activated + and made fullscreen by the user. + </description> + + <enum name="error"> + <entry name="role" value="0" summary="given wl_surface has another role"/> + <entry name="invalid_notification_key" value="1" summary="invalid notification key"/> + </enum> + + <request name="destroy" type="destructor"> + <description summary="destroy remote_shell"> + Destroy this remote_shell object. + + Destroying a bound remote_shell object while there are surfaces + still alive created by this remote_shell object instance is illegal + and will result in a protocol error. + </description> + </request> + + <enum name="container"> + <description summary="containers for remote surfaces"> + Determine how a remote surface should be stacked relative to other + shell surfaces. + </description> + <entry name="default" value="1" summary="default container"/> + <entry name="overlay" value="2" summary="system modal container"/> + </enum> + + <request name="get_remote_surface"> + <description summary="create a remote shell surface from a surface"> + This creates an remote_surface for the given surface and gives it the + remote_surface role. A wl_surface can only be given a remote_surface + role once. If get_remote_surface is called with a wl_surface that + already has an active remote_surface associated with it, or if it had + any other role, an error is raised. + + See the documentation of remote_surface for more details about what an + remote_surface is and how it is used. + </description> + <arg name="id" type="new_id" interface="zcr_remote_surface_v2"/> + <arg name="surface" type="object" interface="wl_surface"/> + <arg name="container" type="uint" enum="container"/> + </request> + + <request name="get_notification_surface"> + <description summary="create a notification surface from a surface"> + Creates a notification_surface for the given surface, gives it the + notification_surface role and associated it with a notification id. + </description> + <arg name="id" type="new_id" interface="zcr_notification_surface_v2"/> + <arg name="surface" type="object" interface="wl_surface"/> + <arg name="notification_key" type="string"/> + </request> + + <event name="default_device_scale_factor" since="1"> + <description summary="initialize scale configuration"> + Sends the default device scale factor. + </description> + <arg name="scale" type="int" summary="DP to pixels ratio, in 8.24 fixed point format"/> + </event> + + <request name="get_input_method_surface" since="1"> + <description summary="Create a input method surface from a surface"> + Creates an input_method_surface for the given surface, gives it + the input_method_surface role. + </description> + <arg name="id" type="new_id" interface="zcr_input_method_surface_v2"/> + <arg name="surface" type="object" interface="wl_surface"/> + </request> + + <request name="get_toast_surface" since="1"> + <description summary="Create a toast surface from a surface"> + Creates an toast_surface for the given surface, gives it + the toast_surface role. + </description> + <arg name="id" type="new_id" interface="zcr_toast_surface_v2"/> + <arg name="surface" type="object" interface="wl_surface"/> + </request> + + <enum name="layout_mode"> + <description summary="the layout mode"> + Determine how a client should layout surfaces. + </description> + <entry name="windowed" value="1" summary="multiple windows"/> + <entry name="tablet" value="2" summary="restricted mode for tablet"/> + </enum> + + <event name="layout_mode" since="1"> + <description summary="sends the layout_mode"> + Sends the layout_mode used by the server. + </description> + <arg name="layout_mode" type="uint" enum="layout_mode"/> + </event> + + <request name="get_remote_output" since="1"> + <description summary="extend output interface for remote shell"> + Instantiate an interface extension for the given wl_output to + provide remote shell functionality. + </description> + <arg name="id" type="new_id" interface="zcr_remote_output_v2" summary="the new remote output interface id"/> + <arg name="output" type="object" interface="wl_output"/> + </request> + + <enum name="desktop_focus_state"> + <description summary="desktop foucs state"> + Desktop client window focus state. + </description> + <entry name="no_focus" value="1" summary="no window get focused"/> + <entry name="client_focused" value="2" summary="client window get focused"/> + <entry name="other_client_focused" value="3" summary="other client window get focused"/> + </enum> + + <event name="desktop_focus_state_changed" since="1"> + <description summary="desktop window focus state change"> + Notifies client that the window focus state change. + </description> + <arg name="focus_state" type="uint" enum="desktop_focus_state"/> + </event> + + </interface> + + <interface name="zcr_remote_surface_v2" version="1"> + <description summary="A desktop window"> + An interface that may be implemented by a wl_surface, for + implementations that provide a desktop-style user interface + and allows for remotely managed windows. + + It provides requests to treat surfaces like windows, allowing to set + properties like app id and geometry. + + The client must call wl_surface.commit on the corresponding wl_surface + for the remote_surface state to take effect. + + For a surface to be mapped by the compositor the client must have + committed both an remote_surface state and a buffer. + </description> + + <enum name="systemui_visibility_state"> + <description summary="systemui visibility behavior"> + Determine the visibility behavior of the system UI. + </description> + <entry name="visible" value="1" summary="system ui is visible"/> + <entry name="autohide_non_sticky" value="2" summary="system ui autohides and is not sticky"/> + <entry name="autohide_sticky" value="3" summary="system ui autohides and is sticky"/> + </enum> + + <request name="destroy" type="destructor"> + <description summary="Destroy the remote_surface"> + Unmap and destroy the window. The window will be effectively + hidden from the user's point of view, and all state will be lost. + </description> + </request> + + <request name="set_app_id"> + <description summary="set application ID"> + Set an application identifier for the surface. + </description> + <arg name="app_id" type="string"/> + </request> + + <request name="set_title"> + <description summary="set surface title"> + Set a short title for the surface. + + This string may be used to identify the surface in a task bar, + window list, or other user interface elements provided by the + compositor. + + The string must be encoded in UTF-8. + </description> + <arg name="title" type="string"/> + </request> + + <request name="set_top_inset"> + <description summary="set top inset for surface"> + Set distance from the top of the surface to the contents. + + This distance typically represents the size of the window caption. + </description> + <arg name="height" type="int"/> + </request> + + <request name="maximize"> + <description summary="maximize"> + Request that surface is maximized. The window geometry will be updated + to whatever the compositor finds appropriate for a maximized window. + + This is only a request that the window should be maximized. The + compositor may choose to ignore this request. The client should + listen to state_type_changed events to determine if the window was + maximized or not. + </description> + </request> + + <request name="minimize"> + <description summary="minimize"> + Request that surface is minimized. + + This is only a request that the window should be minimized. The + compositor may choose to ignore this request. The client should + listen to state_type_changed events to determine if the window was + minimized or not. + </description> + </request> + + <request name="restore"> + <description summary="restore"> + Request that surface is restored. This restores the window geometry + to what it was before the window was minimized, maximized or made + fullscreen. + + This is only a request that the window should be restored. The + compositor may choose to ignore this request. The client should + listen to state_type_changed events to determine if the window was restored + or not. + </description> + </request> + + <request name="fullscreen"> + <description summary="fullscreen"> + Request that surface is made fullscreen. + + This is only a request that the window should be made fullscreen. + The compositor may choose to ignore this request. The client should + listen to set_fullscreen events to determine if the window was + made fullscreen or not. + </description> + </request> + + <request name="pin"> + <description summary="pin"> + Request that surface is pinned. + + This is only a request that the window should be pinned. + The compositor may choose to ignore this request. The client should + listen to state_type_changed events to determine if the window was + pinned or not. If trusted flag is non-zero, the app can prevent users + from exiting the pinned mode. + </description> + <arg name="trusted" type="int"/> + </request> + + <request name="unpin"> + <description summary="unpin"> + Request that surface is unpinned. + + This is only a request that the window should be unpinned. + The compositor may choose to ignore this request. The client should + listen to state_type_changed events to determine if the window was + unpinned or not. + </description> + </request> + + <request name="set_system_modal"> + <description summary="suggests a re-layout of remote shell input area"> + Suggests a surface should become system modal. + </description> + </request> + + <request name="unset_system_modal"> + <description summary="suggests a re-layout of remote shell input area"> + Suggests a surface should become non system modal. + </description> + </request> + + <event name="close"> + <description summary="surface wants to be closed"> + The close event is sent by the compositor when the user + wants the surface to be closed. This should be equivalent to + the user clicking the close button in client-side decorations, + if your application has any... + + This is only a request that the user intends to close your + window. The client may choose to ignore this request, or show + a dialog to ask the user to save their data... + </description> + </event> + + <enum name="state_type"> + <description summary="state types for remote surfaces"> + Defines common show states for shell surfaces. + </description> + <entry name="normal" value="1" summary="normal window state"/> + <entry name="minimized" value="2" summary="minimized window state"/> + <entry name="maximized" value="3" summary="maximized window state"/> + <entry name="fullscreen" value="4" summary="fullscreen window state"/> + <entry name="pinned" value="5" summary="pinned window state"/> + <entry name="trusted_pinned" value="6" summary="trusted pinned window state"/> + <entry name="moving" value="7" summary="moving window state"/> + <entry name="resizing" value="8" summary="resizing window state"/> + <entry name="left_snapped" value="9" summary="left snapped window state"/> + <entry name="right_snapped" value="10" summary="right snapped window state"/> + <entry name="pip" value="11" summary="pip window state"/> + </enum> + + <event name="state_type_changed"> + <description summary="surface state type changed"> + The state_type_changed event is sent by the compositor when + the surface state changed. + + This is an event to notify that the window state changed in compositor. + The state change may be triggered by a client's request, or some user + action directly handled by the compositor. The client may choose to + ignore this event. + </description> + <arg name="state_type" type="uint" enum="state_type"/> + </event> + + <request name="set_rectangular_surface_shadow" since="1"> + <description summary="set a rectangular shadow"> + Request that surface needs a rectangular shadow. + + This is only a request that the surface should have a rectangular + shadow. The compositor may choose to ignore this request. + + The arguments are given in the remote surface coordinate space and + specifies inner bounds of the shadow. Specifying zero width and height + will disable the shadow. + </description> + <arg name="x" type="int"/> + <arg name="y" type="int"/> + <arg name="width" type="int"/> + <arg name="height" type="int"/> + </request> + + <request name="set_systemui_visibility" since="1"> + <description summary="requests the system ui visibility behavior for the surface"> + Requests how the surface will change the visibility of the system UI when it is made active. + </description> + <arg name="visibility" type="uint" enum="systemui_visibility_state"/> + </request> + + <request name="set_always_on_top" since="1"> + <description summary="set always on top"> + Request that surface is made to be always on top. + + This is only a request that the window should be always on top. + The compositor may choose to ignore this request. + + </description> + </request> + + <request name="unset_always_on_top" since="1"> + <description summary="unset always on top"> + Request that surface is made to be not always on top. + + This is only a request that the window should be not always on top. + The compositor may choose to ignore this request. + </description> + </request> + + <enum name="orientation"> + <description summary="window orientation"> + The orientation of the window. + </description> + <entry name="portrait" value="1" summary="portrait"/> + <entry name="landscape" value="2" summary="landscape"/> + </enum> + + <request name="set_orientation" since="1"> + <description summary="set orientation"> + Set an orientation for the surface. + </description> + <arg name="orientation" type="int" enum="orientation"/> + </request> + + <event name="window_geometry_changed" since="1"> + <description summary="announce window geometry commit"> + Notify the client of committed window geometry. + + The compositor sends this event when it commits window geometry. The + client may use this information to convert coordinates of input events + using the latest committed geometry. + </description> + <arg name="x" type="int"/> + <arg name="y" type="int"/> + <arg name="width" type="int"/> + <arg name="height" type="int"/> + </event> + + <enum name="bounds_change_reason"> + <description summary="bounds_change_reason"> + Specifies the cause of the window bounds change event. + </description> + <entry name="drag_move" value="1" summary="the window is being moved by drag operation"/> + <entry name="drag_resize" value="2" summary="the window is being resized by drag operation."/> + <entry name="snap_to_left" value="3" summary="the window is resized to left snapped state"/> + <entry name="snap_to_right" value="4" summary="the window is resized to right snapped state"/> + <entry name="move" value="5" summary="the window bounds is moved due to other WM operations"/> + <entry name="resize" value="6" summary="the window bounds is reiszed due to other WM operations"/> + <entry name="pip" value="7" summary="the window bounds is resized or moved for PIP"/> + </enum> + + <event name="bounds_changed" since="1"> + <description summary="The compositor requested to change the bounds"> + The compositor requested to change its + bounds. "bounds_change_reason" specifies the cause of the + bounds change. The client may apply the different move/resize + strategy depending on the reason. + + "display_id_hi", "display_id_lo" specifies in which workspace + the surface should live in. + + The client responds with set_bounds_in_output request, with the + bounds it is resized to (this may be different from the bounds + requested). + + The client may ignore move request depending on the state, + e.g, if it becomes resizable or other constrants. + </description> + <arg name="display_id_hi" type="uint"/> + <arg name="display_id_lo" type="uint"/> + <arg name="x" type="int"/> + <arg name="y" type="int"/> + <arg name="width" type="int"/> + <arg name="height" type="int"/> + <arg name="bounds_change_reason" type="uint" enum="bounds_change_reason"/> + </event> + + <request name="start_move" since="1"> + <description summary="start an interactive move"> + Request an interactive, user-driven move of the surface. "x" + and "y" specifies the starting point of the pointer device + that initiated the move. + + The compositor responds to this request with a drag_started + event with "none" direction. Please see drag_started event + for more details. + + The compositor may ignore move requests depending on the state of the + surface, e.g. fullscreen or maximized. + </description> + <arg name="x" type="int"/> + <arg name="y" type="int"/> + </request> + + <enum name="resize_direction"> + <description summary="resize direction"> + The resize direction for drag operation + </description> + <entry name="none" value="0" summary="move only, no resize"/> + <entry name="left" value="1" summary="resize to the left"/> + <entry name="topleft" value="2" summary="resize to the top left"/> + <entry name="top" value="3" summary="resize to the top"/> + <entry name="topright" value="4" summary="resize to the top right"/> + <entry name="right" value="5" summary="resize to the right"/> + <entry name="bottomright" value="6" summary="resize to the buttom right"/> + <entry name="bottom" value="7" summary="resize to the bottom"/> + <entry name="bottomleft" value="8" summary="resize to the bottom left"/> + </enum> + + <event name="drag_started" since="1"> + <description summary="Notifies that a drag to move/resize started."> + Notifies a client that the compositor started drag + operation. "direction" specifies which direction it is being + resized. "none" direction means just move but not resize. + + This will be followed by series of the "bounds_changed" event + with "drag_resize" or "drag_move" reasons to update the window + bounds druing the drag operation. + </description> + <arg name="direction" type="uint" enum="resize_direction"/> + </event> + + <event name="drag_finished" since="1"> + <description summary="Notifies that a drag operation has finished."> + Called when the drag operation is finished. "x" and "y" + specifies the position of the pointer device used to drag. + "canceled" is true if the drag operation is aborted during + drag (e.g. by capture change or user action.) + </description> + <arg name="x" type="int"/> + <arg name="y" type="int"/> + <arg name="canceled" type="int" summary="true if the operation was canceled"/> + </event> + + <request name="set_can_maximize" since="1"> + <description summary="set can_maximize"> + Request that surface can be in maximzied state. + </description> + </request> + + <request name="unset_can_maximize" since="1"> + <description summary="unset can_maximize"> + Request that surface can not be in maximzied state. + </description> + </request> + + <request name="set_min_size" since="1"> + <description summary="set the minimum size"> + Set a minimum size of the surface. + + Values set in this way are double-buffered. They will get + applied on the next commit. + </description> + <arg name="width" type="int"/> + <arg name="height" type="int"/> + </request> + + <request name="set_max_size" since="1"> + <description summary="set the maximum size"> + Set a maximum size of the surface. + + Values set in this way are double-buffered. They will get + applied on the next commit. + + Setting the same size as minimum size makes the surface + unresizable. + </description> + <arg name="width" type="int"/> + <arg name="height" type="int"/> + </request> + + <request name="set_snapped_to_left" since="1"> + <description summary="set the surface to left snapped"> + Request that surface is snapped to left. + </description> + </request> + + <request name="set_snapped_to_right" since="1"> + <description summary="set the surface to right snapped"> + Request that surface is snapped to right. + </description> + </request> + + <request name="start_resize" since="1"> + <description summary="start an interactive resize"> + Request to start an interactive, user-driven resize of the surface. + "x" and "y" specifies the starting point of the pointer device + that initiated the reize. + + The compositor responds to this request with a "drag_started" + event, followed by "bounds_changed" events, and ends the + resize operation with a "drag_finhsed" event. The compositor + determines the new bounds using the resize_direction and the + pointer event location. + + The compositor may ignore resize requests depending on the state of the + surface, e.g. fullscreen or maximized, or no drag event is in pregress. + </description> + <arg name="resize_direction" type="uint" enum="resize_direction"/> + <arg name="x" type="int"/> + <arg name="y" type="int"/> + </request> + + <enum name="frame_type"> + <description summary="frame types"> + Frame type that can be used to decorate a surface. + </description> + <entry name="none" value="0" summary="no frame"/> + <entry name="normal" value="1" summary="caption with shadow"/> + <entry name="shadow" value="2" summary="shadow only"/> + <entry name="autohide" value="3" summary="autohide frame with shadow"/> + <entry name="overlay" value="4" summary="overlay frame with shadow"/> + </enum> + + <request name="set_frame" since="1"> + <description summary="request a frame for surface"> + Enables compositor side frame decoration. |type| + specifies the type of frame to use for the surface. + </description> + <arg name="type" type="uint" enum="frame_type"/> + </request> + + <enum name="frame_button_type" bitfield="true"> + <description summary="frame button types"> + The mask that represents buttons on frame. + </description> + <entry name="back" value="1" summary="a button to naviate backwards"/> + <entry name="minimize" value="2" summary="a button to minimize the window"/> + <entry name="maximize_restore" value="4" + summary="a button to maximize or restore"/> + <entry name="menu" value="8" + summary="a button to activate application's menu"/> + <entry name="close" value="16" summary="a button to close the window"/> + <entry name="zoom" value="32" + summary="a mask to turn the maximize_restore button to zoom button"/> + <entry name="center" value="64" + summary="a customizable, center-aligned button"/> + </enum> + + <request name="set_frame_buttons" since="1"> + <description summary="updates buttons' state on frame"> + Updates the frame's button state. |visible_buttons| and |enabled_buttons| + are the union of button mask defined in |frame_button_type| enum. + + The mask present in |enabled_buttons| but not in |visible_buttons| will + be ignored. + </description> + <arg name="visible_buttons" type="uint"/> + <arg name="enabled_buttons" type="uint"/> + </request> + + <request name="set_extra_title" since="1"> + <description summary="set extra title string"> + The extra informational string about the surface. This can be + used to show the debug information in the title bar, or log + messages. + + This is different from "set_title" which is used to identify + the surface. + + The string must be encoded in UTF-8. + </description> + <arg name="extra_title" type="string"/> + </request> + + <enum name="orientation_lock"> + <description summary="orientation lock request for remote surfaces"> + Defines orientation request when a remote surface is in foreground. + </description> + <entry name="none" value="1" summary="no orientation lock"/> + <entry name="portrait" value="2" summary="primary or secondary portrait"/> + <entry name="landscape" value="3" summary="primary or secondary landscape"/> + <entry name="current" value="4" summary="keep current orientation"/> + <entry name="portrait_primary" value="5" summary="primary portrait"/> + <entry name="landscape_primary" value="6" summary="primary landscape"/> + <entry name="portrait_secondary" value="7" summary="secondary portrait"/> + <entry name="landscape_secondary" value="8" summary="secondary landscape"/> + </enum> + + <request name="set_orientation_lock" since="1"> + <description summary="set orientation lock for a remote surface"> + Request a specific orientation behavior when this surface is in foreground. + </description> + <arg name="orientation_lock" type="uint" enum="orientation_lock"/> + </request> + + <request name="pip" since="1"> + <description summary="set pip for a remote surface"> + Request that surface is set to Picture-in-Picture (PIP). + </description> + </request> + + <request name="set_aspect_ratio" since="1"> + <description summary="set the maximum size"> + Set an aspect ratio of the surface. + + Values set in this way are double-buffered. They will get + applied on the next commit. + + The ratio of the values is used for the ratio of width to height of the + surface. The size of surface is restricted to the ratio. If any value is + zero, the restriction on aspect ratio is unset. + </description> + <arg name="width" type="int"/> + <arg name="height" type="int"/> + </request> + + <enum name="zoom_change"> + <description summary="zoom level change"> + Zoom level change. + </description> + <entry name="in" value="0" summary="zoom in"/> + <entry name="out" value="1" summary="zoom out"/> + <entry name="reset" value="2" summary="reset zoom level"/> + </enum> + + <event name="change_zoom_level" since="1"> + <description summary="change zoom level"> + Request application zoom level change. + </description> + <arg name="change" type="int" enum="zoom_change"/> + </event> + + <request name="set_accessibility_id" since="1"> + <description summary="set accessibility ID to the surface"> + Set accessibility window ID to the surface. A negative number removes + the existing accessibility ID from the surface. + </description> + <arg name="id" type="int" summary="Accessibility ID. Negative number removes existing accessibility ID from the surface."/> + </request> + + <request name="set_pip_original_window" since="1"> + <description summary="set the pip original window"> + Set this surface the original window for the current PIP window. + </description> + </request> + + <request name="unset_pip_original_window" since="1"> + <description summary="unset the pip original window"> + Unset this surface the original window for the current PIP window. + </description> + </request> + + <request name="set_system_gesture_exclusion" since="1"> + <description summary="set system gesture exclusion"> + Set system gesture exclusion region in which system gestures e.g. back + gesture should not be triggered. + </description> + <arg name="region" type="object" interface="wl_region" allow-null="true"/> + </request> + + <request name="set_resize_lock" since="1"> + <description summary="set resize lock state"> + Enable the resize lock and put restrictions related to resizing on + the shell surface. + + The resize lock state is double buffered, and will be applied at the + time wl_surface.commit of the corresponding wl_surface is called. + </description> + </request> + + <request name="unset_resize_lock" since="1"> + <description summary="unset resize lock state"> + Disable the resize lock and allow the shell surface to be resized + freely. + + The resize lock state is double buffered, and will be applied at the + time wl_surface.commit of the corresponding wl_surface is called. + </description> + </request> + + <event name="bounds_changed_in_output" since="1"> + <description summary="The compositor requested to change the bounds"> + The compositor requested to change its + bounds. "bounds_change_reason" specifies the cause of the + bounds change. The client may apply the different move/resize + strategy depending on the reason. + + The "output" specifies the wayland output in which the suface should live. + + The client responds with set_bounds_in_output request, with the + bounds it is resized to (this may be different from the bounds + requested). + + The client may ignore move request depending on the state, + e.g, if it becomes resizable or other constrants. + </description> + <arg name="output" type="object" interface="wl_output"/> + <arg name="x" type="int"/> + <arg name="y" type="int"/> + <arg name="width" type="int"/> + <arg name="height" type="int"/> + <arg name="bounds_change_reason" type="uint" enum="bounds_change_reason"/> + </event> + + <request name="set_bounds_in_output" since="1"> + <description summary="set window bounds"> + Set the "visible bounds" of a window from the user's perspective. + Client-side decorations often have invisible portions like drop shadows + which should be ignored for the purposes of aligning, placing and + constraining windows. + + The bounds are double buffered, and will be applied at the + time wl_surface.commit of the corresponding wl_surface is called. + + Once the bounds are set, it is not possible to unset them, and they will + remain the same until set_bounds_in_output is called again, even if a new sub- + surface or buffer is attached. + + If never set, the value is the surface content bounds. This updates + dynamically on every commit. + + The bounds are relative to the given display. If the display is invalid, + they are assumed to be relative to the primary display. + + The width and height must be greater than zero. + </description> + <arg name="output" type="object" interface="wl_output"/> + <arg name="x" type="int"/> + <arg name="y" type="int"/> + <arg name="width" type="int"/> + <arg name="height" type="int"/> + </request> + </interface> + + <interface name="zcr_notification_surface_v2" version="1"> + <description summary="A notification window"> + An interface that may be implemented by a wl_surface to host + notification contents. + </description> + + <request name="destroy" type="destructor"> + <description summary="Destroy the notification_surface"> + Unmap and destroy the notification surface. + </description> + </request> + + <request name="set_app_id" since="1"> + <description summary="set application ID"> + Set an application identifier for the notification surface. + </description> + <arg name="app_id" type="string"/> + </request> + </interface> + + <interface name="zcr_input_method_surface_v2" version="1"> + <description summary="An input method window"> + An interface that may be implemented by a wl_surface to host IME contents. + </description> + + <request name="destroy" type="destructor"> + <description summary="Destroy the ime_surface"> + Unmap and destroy the input mtehod surface. + </description> + </request> + + <request name="set_bounds_in_output" since="1"> + <description summary="set window bounds"> + Set the "visible bounds" of a window from the user's perspective. + + The bounds are double buffered, and will be applied at the + time wl_surface.commit of the corresponding wl_surface is called. + + Once the bounds are set, it is not possible to unset them, and they will + remain the same until set_bounds_in_output is called again, even if a new sub- + surface or buffer is attached. + + If never set, the value is the surface content bounds. This updates + dynamically on every commit. + + The bounds are relative to the given display. If the display is invalid, + they are assumed to be relative to the primary display. + + The width and height must be greater than zero. + </description> + <arg name="output" type="object" interface="wl_output"/> + <arg name="x" type="int"/> + <arg name="y" type="int"/> + <arg name="width" type="int"/> + <arg name="height" type="int"/> + </request> + </interface> + + <interface name="zcr_toast_surface_v2" version="1"> + <description summary="A toast window"> + An interface that may be implemented by a wl_surface to host + toast contents. + </description> + + <request name="destroy" type="destructor"> + <description summary="Destroy the toast_surface"> + Unmap and destroy the toast surface. + </description> + </request> + + <request name="set_bounds_in_output" since="1"> + <description summary="set toast bounds position"> + Set the bounds of a toast window from the user's perspective. + + The bounds are double buffered, and will be applied at the + time wl_surface.commit of the corresponding wl_surface is called. + + Once the bounds are set, it is not possible to unset them, and they will + remain the same until set_bounds is called again, even if a new sub- + surface or buffer is attached. + + If never set, the compositor will determine the toast position. + + The bounds are relative to the given display. If the display is invalid, + they are assumed to be relative to the primary display. + </description> + <arg name="output" type="object" interface="wl_output"/> + <arg name="x" type="int"/> + <arg name="y" type="int"/> + <arg name="width" type="int"/> + <arg name="height" type="int"/> + </request> + </interface> + + <interface name="zcr_remote_output_v2" version="1"> + <description summary="remote shell interface to a wl_output"> + An additional interface to a wl_output object, which allows the + client to access additional functionality for output. + </description> + + <request name="destroy" type="destructor" since="1"> + <description summary="destroy remote_output"> + Destroy this remote_output object. + </description> + </request> + + <event name="display_id" since="1"> + <description summary="the identifier for the display"> + [Deprecated] Sends the display identifier used by the server for the display. + </description> + <arg name="display_id_hi" type="uint"/> + <arg name="display_id_lo" type="uint"/> + </event> + + <event name="port" since="1"> + <description summary="the port of the display"> + Sends the port to which the display is connected for the server. + </description> + <arg name="port" type="uint"/> + </event> + + <event name="identification_data" since="1"> + <description summary="the identification data for the display"> + Sends the identification data for the display, typically in the EDID format. + </description> + <arg name="identification_data" type="array"/> + </event> + + <event name="insets" since="1"> + <description summary="insets for the display in pixels"> + Sends inset information about a particular display in the display's native coordinates. + </description> + <arg name="inset_left" type="int"/> + <arg name="inset_top" type="int"/> + <arg name="inset_right" type="int"/> + <arg name="inset_bottom" type="int"/> + </event> + + <event name="stable_insets" since="1"> + <description summary="stable insets for a display in pixels"> + Sends stable inset information about a particular display in the display's native + coordinates. + </description> + <arg name="stable_inset_left" type="int"/> + <arg name="stable_inset_top" type="int"/> + <arg name="stable_inset_right" type="int"/> + <arg name="stable_inset_bottom" type="int"/> + </event> + + <enum name="systemui_behavior"> + <description summary="systemui behavior"> + Determine the behavior of the system UI. + </description> + <entry name="visible" value="1" summary="system ui is visible"/> + <entry name="hidden" value="2" summary="system ui is autohide or hidden"/> + </enum> + + <event name="systemui_behavior" since="1"> + <description summary="systemui_behavior_state for a display"> + Sends information about whether the systemui behavior is auto hide. + The "systemui_behavior" value is of enum type "systemui_behavior". + </description> + <arg name="systemui_behavior" type="int" enum="systemui_behavior"/> + </event> + + </interface> + +</protocol> diff --git a/chromium.org/unstable/stylus/stylus-unstable-v2.xml b/chromium.org/unstable/stylus/stylus-unstable-v2.xml index 9bb5022..cb3ca24 100644 --- a/chromium.org/unstable/stylus/stylus-unstable-v2.xml +++ b/chromium.org/unstable/stylus/stylus-unstable-v2.xml @@ -198,4 +198,3 @@ </interface> </protocol> - diff --git a/chromium.org/unstable/text-input/README b/chromium.org/unstable/text-input/README new file mode 100644 index 0000000..8f290f6 --- /dev/null +++ b/chromium.org/unstable/text-input/README @@ -0,0 +1,4 @@ +Extensions of text_input protocol. + +Maintainers: +Hidehiko Abe <hidehiko@chromium.org> diff --git a/chromium.org/unstable/text-input/text-input-extension-unstable-v1.xml b/chromium.org/unstable/text-input/text-input-extension-unstable-v1.xml new file mode 100644 index 0000000..5b777b4 --- /dev/null +++ b/chromium.org/unstable/text-input/text-input-extension-unstable-v1.xml @@ -0,0 +1,86 @@ +<?xml version="1.0" encoding="UTF-8"?> +<protocol name="text_input_extension_unstable_v1"> + + <copyright> + Copyright 2021 The Chromium Authors. + + Permission is hereby granted, free of charge, to any person obtaining a + copy of this software and associated documentation files (the "Software"), + to deal in the Software without restriction, including without limitation + the rights to use, copy, modify, merge, publish, distribute, sublicense, + and/or sell copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice (including the next + paragraph) shall be included in all copies or substantial portions of the + Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + DEALINGS IN THE SOFTWARE. + </copyright> + + <interface name="zcr_text_input_extension_v1" version="1"> + <description summary="extends text_input to support richer operations"> + Allows a text_input to sends more variation of operations to support + richer features, such as set_preedit_region. + + Warning! The protocol described in this file is experimental and + backward incompatible changes may be made. Backward compatible changes + may be added together with the corresponding uinterface version bump. + Backward incompatible changes are done by bumping the version number in + the protocol and interface names and resetting the interface version. + Once the protocol is to be declared stable, the 'z' prefix and the + version number in the protocol and interface names are removed and the + interface version number is reset. + </description> + + <enum name="error"> + <entry name="extended_text_input_exists" value="0" + summary="the text_input already has an extended_text_input object associated"/> + </enum> + + <request name="get_extended_text_input"> + <description summary="get extended_text_input for a text_input"> + Create extended_text_input object. + See zcr_extended_text_input interface for details. + If the given text_input object already has a extended_text_input object + associated, the extended_text_input_exists protocol error is raised. + </description> + <arg name="id" type="new_id" interface="zcr_extended_text_input_v1"/> + <arg name="text_input" type="object" interface="zwp_text_input_v1"/> + </request> + </interface> + + <interface name="zcr_extended_text_input_v1" version="1"> + <description summary="extension of text_input protocol"> + The zcr_extended_text_input_v1 interface extends the text_input interface + to support more rich operations on text_input. + </description> + + <request name="destroy" type="destructor"> + <description summary="destroy extended_text_input object"/> + </request> + + <event name="set_preedit_region"> + <description summary="set preedit from the surrounding text"> + IME requests to update text_input client to set the preedit + from the surrounding text. + + index is the starting point of the preedit, relative to the current + cursor position in utf-8 byte-offset. + length is the length of the preedit region in utf-8 byte length. + + Following the convention we have in text_input::preedit_string, + text_input::preedit_styling sent just before this will be applied. + </description> + <arg name="index" type="int" /> + <arg name="length" type="uint" /> + </event> + + </interface> +</protocol> |