|
Packit Service |
5a9772 |
|
|
Packit Service |
5a9772 |
<protocol name="keyboard_shortcuts_inhibit_unstable_v1">
|
|
Packit Service |
5a9772 |
|
|
Packit Service |
5a9772 |
<copyright>
|
|
Packit Service |
5a9772 |
Copyright © 2017 Red Hat Inc.
|
|
Packit Service |
5a9772 |
|
|
Packit Service |
5a9772 |
Permission is hereby granted, free of charge, to any person obtaining a
|
|
Packit Service |
5a9772 |
copy of this software and associated documentation files (the "Software"),
|
|
Packit Service |
5a9772 |
to deal in the Software without restriction, including without limitation
|
|
Packit Service |
5a9772 |
the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
|
Packit Service |
5a9772 |
and/or sell copies of the Software, and to permit persons to whom the
|
|
Packit Service |
5a9772 |
Software is furnished to do so, subject to the following conditions:
|
|
Packit Service |
5a9772 |
|
|
Packit Service |
5a9772 |
The above copyright notice and this permission notice (including the next
|
|
Packit Service |
5a9772 |
paragraph) shall be included in all copies or substantial portions of the
|
|
Packit Service |
5a9772 |
Software.
|
|
Packit Service |
5a9772 |
|
|
Packit Service |
5a9772 |
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
Packit Service |
5a9772 |
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
Packit Service |
5a9772 |
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
|
Packit Service |
5a9772 |
THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
Packit Service |
5a9772 |
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
Packit Service |
5a9772 |
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
|
Packit Service |
5a9772 |
DEALINGS IN THE SOFTWARE.
|
|
Packit Service |
5a9772 |
</copyright>
|
|
Packit Service |
5a9772 |
|
|
Packit Service |
5a9772 |
<description summary="Protocol for inhibiting the compositor keyboard shortcuts">
|
|
Packit Service |
5a9772 |
This protocol specifies a way for a client to request the compositor
|
|
Packit Service |
5a9772 |
to ignore its own keyboard shortcuts for a given seat, so that all
|
|
Packit Service |
5a9772 |
key events from that seat get forwarded to a surface.
|
|
Packit Service |
5a9772 |
|
|
Packit Service |
5a9772 |
Warning! The protocol described in this file is experimental and
|
|
Packit Service |
5a9772 |
backward incompatible changes may be made. Backward compatible
|
|
Packit Service |
5a9772 |
changes may be added together with the corresponding interface
|
|
Packit Service |
5a9772 |
version bump.
|
|
Packit Service |
5a9772 |
Backward incompatible changes are done by bumping the version
|
|
Packit Service |
5a9772 |
number in the protocol and interface names and resetting the
|
|
Packit Service |
5a9772 |
interface version. Once the protocol is to be declared stable,
|
|
Packit Service |
5a9772 |
the 'z' prefix and the version number in the protocol and
|
|
Packit Service |
5a9772 |
interface names are removed and the interface version number is
|
|
Packit Service |
5a9772 |
reset.
|
|
Packit Service |
5a9772 |
</description>
|
|
Packit Service |
5a9772 |
|
|
Packit Service |
5a9772 |
<interface name="zwp_keyboard_shortcuts_inhibit_manager_v1" version="1">
|
|
Packit Service |
5a9772 |
<description summary="context object for keyboard grab_manager">
|
|
Packit Service |
5a9772 |
A global interface used for inhibiting the compositor keyboard shortcuts.
|
|
Packit Service |
5a9772 |
</description>
|
|
Packit Service |
5a9772 |
|
|
Packit Service |
5a9772 |
<request name="destroy" type="destructor">
|
|
Packit Service |
5a9772 |
<description summary="destroy the keyboard shortcuts inhibitor object">
|
|
Packit Service |
5a9772 |
Destroy the keyboard shortcuts inhibitor manager.
|
|
Packit Service |
5a9772 |
</description>
|
|
Packit Service |
5a9772 |
</request>
|
|
Packit Service |
5a9772 |
|
|
Packit Service |
5a9772 |
<request name="inhibit_shortcuts">
|
|
Packit Service |
5a9772 |
<description summary="create a new keyboard shortcuts inhibitor object">
|
|
Packit Service |
5a9772 |
Create a new keyboard shortcuts inhibitor object associated with
|
|
Packit Service |
5a9772 |
the given surface for the given seat.
|
|
Packit Service |
5a9772 |
|
|
Packit Service |
5a9772 |
If shortcuts are already inhibited for the specified seat and surface,
|
|
Packit Service |
5a9772 |
a protocol error "already_inhibited" is raised by the compositor.
|
|
Packit Service |
5a9772 |
</description>
|
|
Packit Service |
5a9772 |
<arg name="id" type="new_id" interface="zwp_keyboard_shortcuts_inhibitor_v1"/>
|
|
Packit Service |
5a9772 |
|
|
Packit Service |
5a9772 |
summary="the surface that inhibits the keyboard shortcuts behavior"/>
|
|
Packit Service |
5a9772 |
|
|
Packit Service |
5a9772 |
summary="the wl_seat for which keyboard shortcuts should be disabled"/>
|
|
Packit Service |
5a9772 |
</request>
|
|
Packit Service |
5a9772 |
|
|
Packit Service |
5a9772 |
<enum name="error">
|
|
Packit Service |
5a9772 |
|
|
Packit Service |
5a9772 |
value="0"
|
|
Packit Service |
5a9772 |
summary="the shortcuts are already inhibited for this surface"/>
|
|
Packit Service |
5a9772 |
</enum>
|
|
Packit Service |
5a9772 |
</interface>
|
|
Packit Service |
5a9772 |
|
|
Packit Service |
5a9772 |
<interface name="zwp_keyboard_shortcuts_inhibitor_v1" version="1">
|
|
Packit Service |
5a9772 |
<description summary="context object for keyboard shortcuts inhibitor">
|
|
Packit Service |
5a9772 |
A keyboard shortcuts inhibitor instructs the compositor to ignore
|
|
Packit Service |
5a9772 |
its own keyboard shortcuts when the associated surface has keyboard
|
|
Packit Service |
5a9772 |
focus. As a result, when the surface has keyboard focus on the given
|
|
Packit Service |
5a9772 |
seat, it will receive all key events originating from the specified
|
|
Packit Service |
5a9772 |
seat, even those which would normally be caught by the compositor for
|
|
Packit Service |
5a9772 |
its own shortcuts.
|
|
Packit Service |
5a9772 |
|
|
Packit Service |
5a9772 |
The Wayland compositor is however under no obligation to disable
|
|
Packit Service |
5a9772 |
all of its shortcuts, and may keep some special key combo for its own
|
|
Packit Service |
5a9772 |
use, including but not limited to one allowing the user to forcibly
|
|
Packit Service |
5a9772 |
restore normal keyboard events routing in the case of an unwilling
|
|
Packit Service |
5a9772 |
client. The compositor may also use the same key combo to reactivate
|
|
Packit Service |
5a9772 |
an existing shortcut inhibitor that was previously deactivated on
|
|
Packit Service |
5a9772 |
user request.
|
|
Packit Service |
5a9772 |
|
|
Packit Service |
5a9772 |
When the compositor restores its own keyboard shortcuts, an
|
|
Packit Service |
5a9772 |
"inactive" event is emitted to notify the client that the keyboard
|
|
Packit Service |
5a9772 |
shortcuts inhibitor is not effectively active for the surface and
|
|
Packit Service |
5a9772 |
seat any more, and the client should not expect to receive all
|
|
Packit Service |
5a9772 |
keyboard events.
|
|
Packit Service |
5a9772 |
|
|
Packit Service |
5a9772 |
When the keyboard shortcuts inhibitor is inactive, the client has
|
|
Packit Service |
5a9772 |
no way to forcibly reactivate the keyboard shortcuts inhibitor.
|
|
Packit Service |
5a9772 |
|
|
Packit Service |
5a9772 |
The user can chose to re-enable a previously deactivated keyboard
|
|
Packit Service |
5a9772 |
shortcuts inhibitor using any mechanism the compositor may offer,
|
|
Packit Service |
5a9772 |
in which case the compositor will send an "active" event to notify
|
|
Packit Service |
5a9772 |
the client.
|
|
Packit Service |
5a9772 |
|
|
Packit Service |
5a9772 |
If the surface is destroyed, unmapped, or loses the seat's keyboard
|
|
Packit Service |
5a9772 |
focus, the keyboard shortcuts inhibitor becomes irrelevant and the
|
|
Packit Service |
5a9772 |
compositor will restore its own keyboard shortcuts but no "inactive"
|
|
Packit Service |
5a9772 |
event is emitted in this case.
|
|
Packit Service |
5a9772 |
</description>
|
|
Packit Service |
5a9772 |
|
|
Packit Service |
5a9772 |
<request name="destroy" type="destructor">
|
|
Packit Service |
5a9772 |
<description summary="destroy the keyboard shortcuts inhibitor object">
|
|
Packit Service |
5a9772 |
Remove the keyboard shortcuts inhibitor from the associated wl_surface.
|
|
Packit Service |
5a9772 |
</description>
|
|
Packit Service |
5a9772 |
</request>
|
|
Packit Service |
5a9772 |
|
|
Packit Service |
5a9772 |
<event name="active">
|
|
Packit Service |
5a9772 |
<description summary="shortcuts are inhibited">
|
|
Packit Service |
5a9772 |
This event indicates that the shortcut inhibitor is active.
|
|
Packit Service |
5a9772 |
|
|
Packit Service |
5a9772 |
The compositor sends this event every time compositor shortcuts
|
|
Packit Service |
5a9772 |
are inhibited on behalf of the surface. When active, the client
|
|
Packit Service |
5a9772 |
may receive input events normally reserved by the compositor
|
|
Packit Service |
5a9772 |
(see zwp_keyboard_shortcuts_inhibitor_v1).
|
|
Packit Service |
5a9772 |
|
|
Packit Service |
5a9772 |
This occurs typically when the initial request "inhibit_shortcuts"
|
|
Packit Service |
5a9772 |
first becomes active or when the user instructs the compositor to
|
|
Packit Service |
5a9772 |
re-enable and existing shortcuts inhibitor using any mechanism
|
|
Packit Service |
5a9772 |
offered by the compositor.
|
|
Packit Service |
5a9772 |
</description>
|
|
Packit Service |
5a9772 |
</event>
|
|
Packit Service |
5a9772 |
|
|
Packit Service |
5a9772 |
<event name="inactive">
|
|
Packit Service |
5a9772 |
<description summary="shortcuts are restored">
|
|
Packit Service |
5a9772 |
This event indicates that the shortcuts inhibitor is inactive,
|
|
Packit Service |
5a9772 |
normal shortcuts processing is restored by the compositor.
|
|
Packit Service |
5a9772 |
</description>
|
|
Packit Service |
5a9772 |
</event>
|
|
Packit Service |
5a9772 |
</interface>
|
|
Packit Service |
5a9772 |
</protocol>
|