wlroots/include/wlr/types
Michael Weiser 471b873de3 keyboard-shortcuts-inhibit: Implement the protocol
The keyboard shortcuts inhibitor protocol is useful for remote desktop
and virtualization software in order to request all keyboard events to
be passed to it and (almost) none being resonded to by the compositor.
This allows the session at the other end of the remote desktop
connection or inside the virtual machine to be interacted with as usual
(e.g. Alt+Tab to switch windows on the remote system instead of
locally).

Add the wayland protocol to the meson build files.

Copy'n'search'n'replace the very similar idle inhibit protocol
implementation. This already provides all the basic functionality:
- creating and destroying inhibitors upon request by a client,
- destruction in reaction to destruction of surfaces or displays,
- a list of inhibitors to search through for existing ones as well as
- a signal to be sent to the compositor upon registration of a new
  inhibitor.

Beyond that we add the active and inactive events to be sent to the
client and wire those to activate and deactivate functions for the
compositor to call in confirmation of activation of a new inhibitor or
(un-)suspending of an existing inhibitor e.g. in response to a special
key combination entered by the user as suggested by the protocol.

As mandated by the protocol, we check the existance of an inhibitor for
a given surface and seat upon creation and return the error provided by
the protocol for that purpose.

Signed-off-by: Michael Weiser <michael.weiser@gmx.de>

Closes: https://github.com/swaywm/wlroots/issues/1817
2020-02-20 21:40:34 +01:00
..
wlr_box.h Remove all wayland-server.h includes 2019-07-27 15:49:32 -04:00
wlr_buffer.h Remove all wayland-server.h includes 2019-07-27 15:49:32 -04:00
wlr_compositor.h Simplify globals implementation by removing destructors 2019-11-25 09:01:46 -05:00
wlr_cursor.h Remove all wayland-server.h includes 2019-07-27 15:49:32 -04:00
wlr_data_control_v1.h Simplify globals implementation by removing destructors 2019-11-25 09:01:46 -05:00
wlr_data_device.h Simplify globals implementation by removing destructors 2019-11-25 09:01:46 -05:00
wlr_export_dmabuf_v1.h Simplify globals implementation by removing destructors 2019-11-25 09:01:46 -05:00
wlr_foreign_toplevel_management_v1.h Simplify globals implementation by removing destructors 2019-11-25 09:01:46 -05:00
wlr_fullscreen_shell_v1.h Simplify globals implementation by removing destructors 2019-11-25 09:01:46 -05:00
wlr_gamma_control_v1.h Simplify globals implementation by removing destructors 2019-11-25 09:01:46 -05:00
wlr_gtk_primary_selection.h Simplify globals implementation by removing destructors 2019-11-25 09:01:46 -05:00
wlr_idle.h Simplify globals implementation by removing destructors 2019-11-25 09:01:46 -05:00
wlr_idle_inhibit_v1.h Simplify globals implementation by removing destructors 2019-11-25 09:01:46 -05:00
wlr_input_device.h s/lid_switch/switch_device 2019-03-19 22:45:58 -04:00
wlr_input_inhibitor.h Simplify globals implementation by removing destructors 2019-11-25 09:01:46 -05:00
wlr_input_method_v2.h Simplify globals implementation by removing destructors 2019-11-25 09:01:46 -05:00
wlr_keyboard.h Introduce wlr_keyboard_group 2019-11-05 20:05:49 +01:00
wlr_keyboard_group.h Introduce wlr_keyboard_group 2019-11-05 20:05:49 +01:00
wlr_keyboard_shortcuts_inhibit_v1.h keyboard-shortcuts-inhibit: Implement the protocol 2020-02-20 21:40:34 +01:00
wlr_layer_shell_v1.h Simplify globals implementation by removing destructors 2019-11-25 09:01:46 -05:00
wlr_linux_dmabuf_v1.h Simplify globals implementation by removing destructors 2019-11-25 09:01:46 -05:00
wlr_list.h Initial pass on API stability guarantees 2018-07-29 19:20:34 -04:00
wlr_matrix.h Remove all wayland-server.h includes 2019-07-27 15:49:32 -04:00
wlr_output.h output: refuse to commit a buffer or modeset a disabled output 2019-12-30 11:21:11 -07:00
wlr_output_damage.h output: disambiguate the two types of damage 2019-04-26 10:08:08 -06:00
wlr_output_layout.h Unbreak build with '-Wstrict-prototypes' 2019-02-28 16:41:23 +01:00
wlr_output_management_v1.h output-management: add current_configuration_dirty 2020-02-19 11:40:23 +01:00
wlr_output_power_management_v1.h Implement wlr-output-power-management-v1 2020-02-20 16:23:45 +01:00
wlr_pointer.h Remove all wayland-server.h includes 2019-07-27 15:49:32 -04:00
wlr_pointer_constraints_v1.h Simplify globals implementation by removing destructors 2019-11-25 09:01:46 -05:00
wlr_pointer_gestures_v1.h Simplify globals implementation by removing destructors 2019-11-25 09:01:46 -05:00
wlr_presentation_time.h Simplify globals implementation by removing destructors 2019-11-25 09:01:46 -05:00
wlr_primary_selection.h Remove all wayland-server.h includes 2019-07-27 15:49:32 -04:00
wlr_primary_selection_v1.h Simplify globals implementation by removing destructors 2019-11-25 09:01:46 -05:00
wlr_region.h Implement pointer-constraints protocol in wlroots and rootston 2018-09-18 10:14:33 +02:00
wlr_relative_pointer_v1.h Simplify globals implementation by removing destructors 2019-11-25 09:01:46 -05:00
wlr_screencopy_v1.h Simplify globals implementation by removing destructors 2019-11-25 09:01:46 -05:00
wlr_seat.h Amend typos 2019-11-23 10:33:47 -05:00
wlr_server_decoration.h Simplify globals implementation by removing destructors 2019-11-25 09:01:46 -05:00
wlr_surface.h Remove all wayland-server.h includes 2019-07-27 15:49:32 -04:00
wlr_switch.h Remove all wayland-server.h includes 2019-07-27 15:49:32 -04:00
wlr_tablet_pad.h Remove all wayland-server.h includes 2019-07-27 15:49:32 -04:00
wlr_tablet_tool.h Clean up wayland backend tablet support 2019-09-26 19:41:19 +03:00
wlr_tablet_v2.h Simplify globals implementation by removing destructors 2019-11-25 09:01:46 -05:00
wlr_text_input_v3.h text_input_v3: Note features supported by the text field 2020-02-20 16:21:44 +01:00
wlr_touch.h Remove all wayland-server.h includes 2019-07-27 15:49:32 -04:00
wlr_virtual_keyboard_v1.h Simplify globals implementation by removing destructors 2019-11-25 09:01:46 -05:00
wlr_virtual_pointer_v1.h virtual-pointer: Add request for mapping to specific output 2020-02-10 21:01:38 +01:00
wlr_xcursor_manager.h Remove all wayland-server.h includes 2019-07-27 15:49:32 -04:00
wlr_xdg_decoration_v1.h Simplify globals implementation by removing destructors 2019-11-25 09:01:46 -05:00
wlr_xdg_output_v1.h xdg-output-v1: use wlr_output.description 2019-12-29 12:35:22 -05:00
wlr_xdg_shell.h xdg-shell: fix inert xdg_surface handling 2019-12-30 14:24:35 -07:00
wlr_xdg_shell_v6.h Simplify globals implementation by removing destructors 2019-11-25 09:01:46 -05:00