add the new pointer extension protocol
This is a manual cherry-pick from
Idd31441f0ce713f3d2300643c5dc950d10a563ca
Bug: 70666810, 80430459
Test: manually done
Change-Id: Iab8902ba3e0a591f007bc0df2d7abefeecb0caec
diff --git a/chromium.org/unstable/cursor-shapes/README b/chromium.org/unstable/cursor-shapes/README
new file mode 100644
index 0000000..d18a72a
--- /dev/null
+++ b/chromium.org/unstable/cursor-shapes/README
@@ -0,0 +1,4 @@
+Cursor shapes protocol
+
+Maintainers:
+Jun Mukai <mukai@chromium.org>
diff --git a/chromium.org/unstable/cursor-shapes/cursor-shapes-unstable-v1.xml b/chromium.org/unstable/cursor-shapes/cursor-shapes-unstable-v1.xml
new file mode 100644
index 0000000..f94a6b4
--- /dev/null
+++ b/chromium.org/unstable/cursor-shapes/cursor-shapes-unstable-v1.xml
@@ -0,0 +1,120 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<protocol name="cursor_shapes_v1">
+
+ <copyright>
+ Copyright 2018 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_cursor_shapes_v1" version="1">
+ <description summary="Allows to set the cursor shape">
+ Allows to set the semantic cursor shape rather than a surface for a
+ pointer cursor.
+
+ 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="error">
+ <entry name="invalid_shape" value="0"
+ summary="the specified shape value is invalid"/>
+ </enum>
+
+ <enum name="cursor_shape_type">
+ <description summary="the type of cursor shape"/>
+ <entry name="pointer" value="0"/>
+ <entry name="cross" value="1"/>
+ <entry name="hand" value="2"/>
+ <entry name="ibeam" value="3"/>
+ <entry name="wait" value="4"/>
+ <entry name="help" value="5"/>
+ <entry name="east_resize" value="6"/>
+ <entry name="north_resize" value="7"/>
+ <entry name="north_east_resize" value="8"/>
+ <entry name="north_west_resize" value="9"/>
+ <entry name="south_resize" value="10"/>
+ <entry name="south_east_resize" value="11"/>
+ <entry name="south_west_resize" value="12"/>
+ <entry name="west_resize" value="13"/>
+ <entry name="north_south_resize" value="14"/>
+ <entry name="east_west_resize" value="15"/>
+ <entry name="north_east_south_west_resize" value="16"/>
+ <entry name="north_west_south_east_resize" value="17"/>
+ <entry name="column_resize" value="18"/>
+ <entry name="row_resize" value="19"/>
+ <entry name="middle_panning" value="20"/>
+ <entry name="east_panning" value="21"/>
+ <entry name="north_panning" value="22"/>
+ <entry name="north_east_panning" value="23"/>
+ <entry name="north_west_panning" value="24"/>
+ <entry name="south_panning" value="25"/>
+ <entry name="south_east_panning" value="26"/>
+ <entry name="south_west_panning" value="27"/>
+ <entry name="west_panning" value="28"/>
+ <entry name="move" value="29"/>
+ <entry name="vertical_text" value="30"/>
+ <entry name="cell" value="31"/>
+ <entry name="context_menu" value="32"/>
+ <entry name="alias" value="33"/>
+ <entry name="progress" value="34"/>
+ <entry name="no_drop" value="35"/>
+ <entry name="copy" value="36"/>
+ <entry name="none" value="37"/>
+ <entry name="not_allowed" value="38"/>
+ <entry name="zoom_in" value="39"/>
+ <entry name="zoom_out" value="40"/>
+ <entry name="grab" value="41"/>
+ <entry name="grabbing" value="42"/>
+ <entry name="dnd_none" value="43"/>
+ <entry name="dnd_move" value="44"/>
+ <entry name="dnd_copy" value="45"/>
+ <entry name="dnd_link" value="46"/>
+ </enum>
+
+ <request name="set_cursor_shape">
+ <description summary="set pointer cursor to the shape">
+ Sets the pointer cursor to the specified shape. The server will change
+ the cursor graphics based on the specified shape and its graphic assets
+ and system condition.
+
+ The "shape" argument needs to be one of the values in cursor_shape_type
+ enum. Otherwise invalid_shape error is raised.
+
+ This is similar to wl_pointer::set_cursor request, but this accepts a
+ shape instead of contents in the form of a surface.
+
+ The client which do not know this protocol should work as-is, so
+ wl_pointer::set_cursor will change the cursor graphics even when it's
+ combined with this request; and another invocation of set_cursor_shape
+ will change the cursor shape again. This means the last invoked one will
+ be used for the actual cursor.
+ </description>
+ <arg name="pointer" type="object" interface="wl_pointer"/>
+ <arg name="shape" type="int"/>
+ </request>
+ </interface>
+</protocol>