mutter/data/dbus-interfaces/org.gnome.Mutter.InputCapture.xml
Jonas Ådahl a8b013b006 Add beginning of input capture API
This API aims to provide a way for users to capture input devices under
certain conditions, for example when a pointer crosses a specified
barrier.

So far only part of the API is implemented, specifially the session
management as well as zone advertisement, where a zone refers to a
region in the compositor which edges will eventually be made available
for barrier placement.

So far the remote access handle is created while the session is enable,
despite the input capturing isn't actually active yet. This will change
in the future once it can actually become active.

v2: Remove absolute/relative pointer, keep only pointer (ofourdan)

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2628>
2023-07-14 22:23:45 +00:00

71 lines
2.0 KiB
XML

<!DOCTYPE node PUBLIC
'-//freedesktop//DTD D-BUS Object Introspection 1.0//EN'
'http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd'>
<node>
<!--
org.gnome.Mutter.InputCapture:
@short_description: Interface for input capture triggers
This API is private and not intended to be used outside of the integrated
system that uses libmutter. No compatibility between versions is
promised.
-->
<interface name="org.gnome.Mutter.InputCapture">
<method name="CreateSession">
<arg name="capabilities" type="u" direction="in" />
<arg name="session_path" type="o" direction="out" />
</method>
<!--
SupportedCapabilities:
<simplelist>
<member>1: KEYBOARD</member>
<member>2: POINTER</member>
<member>4: TOUCH</member>
</simplelist>
-->
<property name="SupportedCapabilities" type="u" access="read" />
</interface>
<interface name="org.gnome.Mutter.InputCapture.Session">
<method name="GetZones">
<arg name="serial" type="u" direction="out" />
<arg name="zones" type="a(uuii)" direction="out" />
</method>
<method name="AddBarrier">
<arg name="serial" type="u" direction="in" />
<arg name="position" type="(iiii)" direction="in" />
<arg name="id" type="u" direction="out" />
</method>
<method name="Enable" />
<method name="Disable" />
<method name="Release">
<arg type="a{sv}" name="options" direction="in" />
</method>
<method name="Close" />
<signal name="Activated">
<arg type="u" name="barrier_id" direction="in" />
<arg type="u" name="activation_id" direction="in" />
<arg type="(dd)" name="cursor_position" direction="in" />
</signal>
<signal name="Deactivated">
<arg type="u" name="activation_id" direction="in" />
</signal>
<signal name="ZonesChanged" />
<signal name="Disabled" />
<signal name="Closed" />
</interface>
</node>