Warning, /frameworks/kguiaddons/src/recorder/keyboard-shortcuts-inhibit-unstable-v1.xml is written in an unsupported language. File is not indexed.

0001 <?xml version="1.0" encoding="UTF-8"?>
0002 <protocol name="keyboard_shortcuts_inhibit_unstable_v1">
0003 
0004   <copyright>
0005     Copyright © 2017 Red Hat Inc.
0006 
0007     Permission is hereby granted, free of charge, to any person obtaining a
0008     copy of this software and associated documentation files (the "Software"),
0009     to deal in the Software without restriction, including without limitation
0010     the rights to use, copy, modify, merge, publish, distribute, sublicense,
0011     and/or sell copies of the Software, and to permit persons to whom the
0012     Software is furnished to do so, subject to the following conditions:
0013 
0014     The above copyright notice and this permission notice (including the next
0015     paragraph) shall be included in all copies or substantial portions of the
0016     Software.
0017 
0018     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
0019     IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
0020     FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
0021     THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
0022     LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
0023     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
0024     DEALINGS IN THE SOFTWARE.
0025   </copyright>
0026 
0027   <description summary="Protocol for inhibiting the compositor keyboard shortcuts">
0028     This protocol specifies a way for a client to request the compositor
0029     to ignore its own keyboard shortcuts for a given seat, so that all
0030     key events from that seat get forwarded to a surface.
0031 
0032     Warning! The protocol described in this file is experimental and
0033     backward incompatible changes may be made. Backward compatible
0034     changes may be added together with the corresponding interface
0035     version bump.
0036     Backward incompatible changes are done by bumping the version
0037     number in the protocol and interface names and resetting the
0038     interface version. Once the protocol is to be declared stable,
0039     the 'z' prefix and the version number in the protocol and
0040     interface names are removed and the interface version number is
0041     reset.
0042   </description>
0043 
0044   <interface name="zwp_keyboard_shortcuts_inhibit_manager_v1" version="1">
0045     <description summary="context object for keyboard grab_manager">
0046       A global interface used for inhibiting the compositor keyboard shortcuts.
0047     </description>
0048 
0049     <request name="destroy" type="destructor">
0050       <description summary="destroy the keyboard shortcuts inhibitor object">
0051         Destroy the keyboard shortcuts inhibitor manager.
0052       </description>
0053     </request>
0054 
0055     <request name="inhibit_shortcuts">
0056       <description summary="create a new keyboard shortcuts inhibitor object">
0057         Create a new keyboard shortcuts inhibitor object associated with
0058         the given surface for the given seat.
0059 
0060         If shortcuts are already inhibited for the specified seat and surface,
0061         a protocol error "already_inhibited" is raised by the compositor.
0062       </description>
0063       <arg name="id" type="new_id" interface="zwp_keyboard_shortcuts_inhibitor_v1"/>
0064       <arg name="surface" type="object" interface="wl_surface"
0065            summary="the surface that inhibits the keyboard shortcuts behavior"/>
0066       <arg name="seat" type="object" interface="wl_seat"
0067            summary="the wl_seat for which keyboard shortcuts should be disabled"/>
0068     </request>
0069 
0070     <enum name="error">
0071       <entry name="already_inhibited"
0072              value="0"
0073              summary="the shortcuts are already inhibited for this surface"/>
0074     </enum>
0075   </interface>
0076 
0077   <interface name="zwp_keyboard_shortcuts_inhibitor_v1" version="1">
0078     <description summary="context object for keyboard shortcuts inhibitor">
0079       A keyboard shortcuts inhibitor instructs the compositor to ignore
0080       its own keyboard shortcuts when the associated surface has keyboard
0081       focus. As a result, when the surface has keyboard focus on the given
0082       seat, it will receive all key events originating from the specified
0083       seat, even those which would normally be caught by the compositor for
0084       its own shortcuts.
0085 
0086       The Wayland compositor is however under no obligation to disable
0087       all of its shortcuts, and may keep some special key combo for its own
0088       use, including but not limited to one allowing the user to forcibly
0089       restore normal keyboard events routing in the case of an unwilling
0090       client. The compositor may also use the same key combo to reactivate
0091       an existing shortcut inhibitor that was previously deactivated on
0092       user request.
0093 
0094       When the compositor restores its own keyboard shortcuts, an
0095       "inactive" event is emitted to notify the client that the keyboard
0096       shortcuts inhibitor is not effectively active for the surface and
0097       seat any more, and the client should not expect to receive all
0098       keyboard events.
0099 
0100       When the keyboard shortcuts inhibitor is inactive, the client has
0101       no way to forcibly reactivate the keyboard shortcuts inhibitor.
0102 
0103       The user can chose to re-enable a previously deactivated keyboard
0104       shortcuts inhibitor using any mechanism the compositor may offer,
0105       in which case the compositor will send an "active" event to notify
0106       the client.
0107 
0108       If the surface is destroyed, unmapped, or loses the seat's keyboard
0109       focus, the keyboard shortcuts inhibitor becomes irrelevant and the
0110       compositor will restore its own keyboard shortcuts but no "inactive"
0111       event is emitted in this case.
0112     </description>
0113 
0114     <request name="destroy" type="destructor">
0115       <description summary="destroy the keyboard shortcuts inhibitor object">
0116         Remove the keyboard shortcuts inhibitor from the associated wl_surface.
0117       </description>
0118     </request>
0119 
0120     <event name="active">
0121       <description summary="shortcuts are inhibited">
0122         This event indicates that the shortcut inhibitor is active.
0123 
0124         The compositor sends this event every time compositor shortcuts
0125         are inhibited on behalf of the surface. When active, the client
0126         may receive input events normally reserved by the compositor
0127         (see zwp_keyboard_shortcuts_inhibitor_v1).
0128 
0129         This occurs typically when the initial request "inhibit_shortcuts"
0130         first becomes active or when the user instructs the compositor to
0131         re-enable and existing shortcuts inhibitor using any mechanism
0132         offered by the compositor.
0133       </description>
0134     </event>
0135 
0136     <event name="inactive">
0137       <description summary="shortcuts are restored">
0138         This event indicates that the shortcuts inhibitor is inactive,
0139         normal shortcuts processing is restored by the compositor.
0140        </description>
0141     </event>
0142   </interface>
0143 </protocol>