From 5334ee8bfd93b2bfdc077f422b87c2509f04d5d4 Mon Sep 17 00:00:00 2001 From: Dorota Czaplejewicz Date: Thu, 24 May 2018 19:46:54 +0200 Subject: virtual-keyboard: add support for the virtual-keyboard-v1 protocol --- include/rootston/desktop.h | 3 +++ include/rootston/virtual_keyboard.h | 7 ++++++ include/wlr/types/wlr_virtual_keyboard_v1.h | 37 +++++++++++++++++++++++++++++ 3 files changed, 47 insertions(+) create mode 100644 include/rootston/virtual_keyboard.h create mode 100644 include/wlr/types/wlr_virtual_keyboard_v1.h (limited to 'include') diff --git a/include/rootston/desktop.h b/include/rootston/desktop.h index 83ff2ea8..bb7d2084 100644 --- a/include/rootston/desktop.h +++ b/include/rootston/desktop.h @@ -14,6 +14,7 @@ #include #include #include +#include #include #include #include @@ -51,6 +52,7 @@ struct roots_desktop { struct wlr_input_inhibit_manager *input_inhibit; struct wlr_linux_dmabuf *linux_dmabuf; struct wlr_layer_shell *layer_shell; + struct wlr_virtual_keyboard_manager_v1 *virtual_keyboard; struct wl_listener new_output; struct wl_listener layout_change; @@ -61,6 +63,7 @@ struct roots_desktop { struct wl_listener decoration_new; struct wl_listener input_inhibit_activate; struct wl_listener input_inhibit_deactivate; + struct wl_listener virtual_keyboard_new; #ifdef WLR_HAS_XWAYLAND struct wlr_xwayland *xwayland; diff --git a/include/rootston/virtual_keyboard.h b/include/rootston/virtual_keyboard.h new file mode 100644 index 00000000..613e5595 --- /dev/null +++ b/include/rootston/virtual_keyboard.h @@ -0,0 +1,7 @@ +#ifndef ROOTSTON_VIRTUAL_KEYBOARD_H +#define ROOTSTON_VIRTUAL_KEYBOARD_H + +#include + +void handle_virtual_keyboard(struct wl_listener *listener, void *data); +#endif diff --git a/include/wlr/types/wlr_virtual_keyboard_v1.h b/include/wlr/types/wlr_virtual_keyboard_v1.h new file mode 100644 index 00000000..1236ae24 --- /dev/null +++ b/include/wlr/types/wlr_virtual_keyboard_v1.h @@ -0,0 +1,37 @@ +#ifndef WLR_TYPES_WLR_VIRTUAL_KEYBOARD_V1_H +#define WLR_TYPES_WLR_VIRTUAL_KEYBOARD_V1_H + +#include +#include +#include + +struct wlr_virtual_keyboard_manager_v1 { + struct wl_global *global; + struct wl_list resources; // struct wl_resource* + struct wl_list virtual_keyboards; // struct wlr_virtual_keyboard_v1* + + struct wl_listener display_destroy; + + struct { + struct wl_signal new_virtual_keyboard; // struct wlr_virtual_keyboard_v1* + } events; +}; + +struct wlr_virtual_keyboard_v1 { + struct wl_resource *resource; + struct wlr_input_device input_device; + struct wlr_seat *seat; + + struct wl_list link; + + struct { + struct wl_signal destroy; // struct wlr_virtual_keyboard_v1* + } events; +}; + +struct wlr_virtual_keyboard_manager_v1* wlr_virtual_keyboard_manager_v1_create( + struct wl_display *display); +void wlr_virtual_keyboard_manager_v1_destroy( + struct wlr_virtual_keyboard_manager_v1 *manager); + +#endif -- cgit v1.2.3