mirror of
https://github.com/brl/mutter.git
synced 2024-11-28 02:50:41 -05:00
wayland: Add gestures protocol XML
This commit is contained in:
parent
1ee387bb31
commit
e11feb229b
2
.gitignore
vendored
2
.gitignore
vendored
@ -66,6 +66,8 @@ src/gtk-shell-protocol.c
|
|||||||
src/gtk-shell-server-protocol.h
|
src/gtk-shell-server-protocol.h
|
||||||
src/xdg-shell-protocol.c
|
src/xdg-shell-protocol.c
|
||||||
src/xdg-shell-server-protocol.h
|
src/xdg-shell-server-protocol.h
|
||||||
|
src/pointer-gestures-protocol.c
|
||||||
|
src/pointer-gestures-server-protocol.h
|
||||||
src/xserver-protocol.c
|
src/xserver-protocol.c
|
||||||
src/xserver-server-protocol.h
|
src/xserver-server-protocol.h
|
||||||
src/meta/meta-version.h
|
src/meta/meta-version.h
|
||||||
|
@ -45,6 +45,8 @@ mutter_built_sources = \
|
|||||||
|
|
||||||
if HAVE_WAYLAND
|
if HAVE_WAYLAND
|
||||||
mutter_built_sources += \
|
mutter_built_sources += \
|
||||||
|
pointer-gestures-protocol.c \
|
||||||
|
pointer-gestures-server-protocol.h \
|
||||||
gtk-shell-protocol.c \
|
gtk-shell-protocol.c \
|
||||||
gtk-shell-server-protocol.h \
|
gtk-shell-server-protocol.h \
|
||||||
xdg-shell-protocol.c \
|
xdg-shell-protocol.c \
|
||||||
@ -53,6 +55,7 @@ mutter_built_sources += \
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
wayland_protocols = \
|
wayland_protocols = \
|
||||||
|
wayland/protocol/pointer-gestures.xml \
|
||||||
wayland/protocol/gtk-shell.xml \
|
wayland/protocol/gtk-shell.xml \
|
||||||
wayland/protocol/xdg-shell.xml \
|
wayland/protocol/xdg-shell.xml \
|
||||||
$(NULL)
|
$(NULL)
|
||||||
|
172
src/wayland/protocol/pointer-gestures.xml
Normal file
172
src/wayland/protocol/pointer-gestures.xml
Normal file
@ -0,0 +1,172 @@
|
|||||||
|
<protocol name="pointer_gestures">
|
||||||
|
<interface name="_wl_pointer_gestures" version="1">
|
||||||
|
<description summary="touchpad gestures">
|
||||||
|
A global interface to provide semantic touchpad gestures for a given
|
||||||
|
pointer.
|
||||||
|
|
||||||
|
Two gestures are currently supported: swipe and zoom/rotate.
|
||||||
|
All gestures follow a three-stage cycle: begin, update, end and
|
||||||
|
are identified by a unique id.
|
||||||
|
|
||||||
|
Warning! The protocol described in this file is experimental. Each
|
||||||
|
version of this protocol should be considered incompatible with any
|
||||||
|
other version, and a client binding to a version different to the one
|
||||||
|
advertised will be terminated. Once the protocol is declared stable,
|
||||||
|
compatibility is guaranteed, the '_' prefix will be removed from the
|
||||||
|
name and the version will be reset to 1.
|
||||||
|
</description>
|
||||||
|
|
||||||
|
<request name="get_swipe_gesture">
|
||||||
|
<description summary="get swipe gesture">
|
||||||
|
Create a swipe gesture object. See the
|
||||||
|
wl_pointer_gesture_swipe interface for details.
|
||||||
|
</description>
|
||||||
|
<arg name="id" type="new_id" interface="_wl_pointer_gesture_swipe"/>
|
||||||
|
<arg name="pointer" type="object" interface="wl_pointer"/>
|
||||||
|
</request>
|
||||||
|
|
||||||
|
<request name="get_pinch_gesture">
|
||||||
|
<description summary="get pinch gesture">
|
||||||
|
Create a pinch gesture object. See the
|
||||||
|
wl_pointer_gesture_pinch interface for details.
|
||||||
|
</description>
|
||||||
|
<arg name="id" type="new_id" interface="_wl_pointer_gesture_pinch"/>
|
||||||
|
<arg name="pointer" type="object" interface="wl_pointer"/>
|
||||||
|
</request>
|
||||||
|
</interface>
|
||||||
|
|
||||||
|
<interface name="_wl_pointer_gesture_swipe" version="1">
|
||||||
|
<description summary="a swipe gesture object">
|
||||||
|
A swipe gesture object notifies a client about a multi-finger swipe
|
||||||
|
gesture detected on an indirect input device such as a touchpad.
|
||||||
|
The gesture is usually initiated by multiple fingers moving in the
|
||||||
|
same direction but once initiated the direction may change.
|
||||||
|
The precise conditions of when such a gesture is detected are
|
||||||
|
implementation-dependent.
|
||||||
|
|
||||||
|
A gesture consists of three stages: begin, update (optional) and end.
|
||||||
|
There cannot be multiple simultaneous pinch or swipe gestures on a
|
||||||
|
same pointer/seat, how compositors prevent these situations is
|
||||||
|
implementation-dependent.
|
||||||
|
|
||||||
|
A gesture may be cancelled by the compositor or the hardware.
|
||||||
|
Clients should not consider performing permanent or irreversible
|
||||||
|
actions until the end of a gesture has been received.
|
||||||
|
</description>
|
||||||
|
|
||||||
|
<request name="destroy" type="destructor">
|
||||||
|
<description summary="destroy the pointer swipe gesture object"/>
|
||||||
|
</request>
|
||||||
|
|
||||||
|
<event name="begin">
|
||||||
|
<description summary="multi-finger swipe begin">
|
||||||
|
This event is sent when a multi-finger swipe gesture is detected
|
||||||
|
on the device.
|
||||||
|
</description>
|
||||||
|
<arg name="serial" type="uint"/>
|
||||||
|
<arg name="time" type="uint" summary="timestamp with millisecond granularity"/>
|
||||||
|
<arg name="surface" type="object" interface="wl_surface"/>
|
||||||
|
<arg name="fingers" type="uint" summary="number of fingers"/>
|
||||||
|
</event>
|
||||||
|
|
||||||
|
<event name="update">
|
||||||
|
<description summary="multi-finger swipe motion">
|
||||||
|
This event is sent when a multi-finger swipe gesture changes the
|
||||||
|
position of the logical center.
|
||||||
|
|
||||||
|
The dx and dy coordinates are relative coordinates of the logical
|
||||||
|
center of the gesture compared to the previous event.
|
||||||
|
</description>
|
||||||
|
<arg name="time" type="uint" summary="timestamp with millisecond granularity"/>
|
||||||
|
<arg name="dx" type="fixed" summary="delta x coordinate in surface coordinate space"/>
|
||||||
|
<arg name="dy" type="fixed" summary="delta y coordinate in surface coordinate space"/>
|
||||||
|
</event>
|
||||||
|
|
||||||
|
<event name="end">
|
||||||
|
<description summary="multi-finger swipe end">
|
||||||
|
This event is sent when a multi-finger swipe gesture ceases to
|
||||||
|
be valid. This may happen when one or more finger is lifted or
|
||||||
|
the gesture is cancelled.
|
||||||
|
|
||||||
|
When a gesture is cancelled, the client should undo state changes
|
||||||
|
caused by this gesture. What causes a gesture to be cancelled is
|
||||||
|
implementation-dependent.
|
||||||
|
</description>
|
||||||
|
<arg name="serial" type="uint"/>
|
||||||
|
<arg name="time" type="uint" summary="timestamp with millisecond granularity"/>
|
||||||
|
<arg name="cancelled" type="int" summary="1 if the gesture was cancelled, 0 otherwise"/>
|
||||||
|
</event>
|
||||||
|
</interface>
|
||||||
|
|
||||||
|
<interface name="_wl_pointer_gesture_pinch" version="1">
|
||||||
|
<description summary="a pinch gesture object">
|
||||||
|
A pinch gesture object notifies a client about a multi-finger pinch
|
||||||
|
gesture detected on an indirect input device such as a touchpad.
|
||||||
|
The gesture is usually initiated by multiple fingers moving towards
|
||||||
|
each other or away from each other, or by two or more fingers rotating
|
||||||
|
around a logical center of gravity. The precise conditions of when
|
||||||
|
such a gesture is detected are implementation-dependent.
|
||||||
|
|
||||||
|
A gesture consists of three stages: begin, update (optional) and end.
|
||||||
|
There cannot be multiple simultaneous pinch or swipe gestures on a
|
||||||
|
same pointer/seat, how compositors prevent these situations is
|
||||||
|
implementation-dependent.
|
||||||
|
|
||||||
|
A gesture may be cancelled by the compositor or the hardware.
|
||||||
|
Clients should not consider performing permanent or irreversible
|
||||||
|
actions until the end of a gesture has been received.
|
||||||
|
</description>
|
||||||
|
|
||||||
|
<request name="destroy" type="destructor">
|
||||||
|
<description summary="destroy the pinch gesture object"/>
|
||||||
|
</request>
|
||||||
|
|
||||||
|
<event name="begin">
|
||||||
|
<description summary="multi-finger pinch begin">
|
||||||
|
This event is sent when a multi-finger pinch gesture is detected
|
||||||
|
on the device.
|
||||||
|
</description>
|
||||||
|
<arg name="serial" type="uint"/>
|
||||||
|
<arg name="time" type="uint" summary="timestamp with millisecond granularity"/>
|
||||||
|
<arg name="surface" type="object" interface="wl_surface"/>
|
||||||
|
<arg name="fingers" type="uint" summary="number of fingers"/>
|
||||||
|
</event>
|
||||||
|
|
||||||
|
<event name="update">
|
||||||
|
<description summary="multi-finger pinch motion">
|
||||||
|
This event is sent when a multi-finger pinch gesture changes the
|
||||||
|
position of the logical center, the rotation or the relative scale.
|
||||||
|
|
||||||
|
The dx and dy coordinates are relative coordinates in the
|
||||||
|
surface coordinate space of the logical center of the gesture.
|
||||||
|
|
||||||
|
The scale factor is an absolute scale compared to the
|
||||||
|
pointer_gesture_pinch.begin event, e.g. a scale of 2 means the fingers
|
||||||
|
are now twice as far apart as on pointer_gesture_pinch.begin.
|
||||||
|
|
||||||
|
The rotation is the relative angle in degrees clockwise compared to the previous
|
||||||
|
pointer_gesture_pinch.begin or pointer_gesture_pinch.update event.
|
||||||
|
</description>
|
||||||
|
<arg name="time" type="uint" summary="timestamp with millisecond granularity"/>
|
||||||
|
<arg name="dx" type="fixed" summary="delta x coordinate in surface coordinate space"/>
|
||||||
|
<arg name="dy" type="fixed" summary="delta y coordinate in surface coordinate space"/>
|
||||||
|
<arg name="scale" type="fixed" summary="scale relative to the initial finger position"/>
|
||||||
|
<arg name="rotation" type="fixed" summary="angle in degrees cw relative to the previous event"/>
|
||||||
|
</event>
|
||||||
|
|
||||||
|
<event name="end">
|
||||||
|
<description summary="multi-finger pinch end">
|
||||||
|
This event is sent when a multi-finger pinch gesture ceases to
|
||||||
|
be valid. This may happen when one or more finger is lifted or
|
||||||
|
the gesture is cancelled.
|
||||||
|
|
||||||
|
When a gesture is cancelled, the client should undo state changes
|
||||||
|
caused by this gesture. What causes a gesture to be cancelled is
|
||||||
|
implementation-dependent.
|
||||||
|
</description>
|
||||||
|
<arg name="serial" type="uint"/>
|
||||||
|
<arg name="time" type="uint" summary="timestamp with millisecond granularity"/>
|
||||||
|
<arg name="cancelled" type="int" summary="1 if the gesture was cancelled, 0 otherwise"/>
|
||||||
|
</event>
|
||||||
|
</interface>
|
||||||
|
</protocol>
|
Loading…
Reference in New Issue
Block a user