summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDerek Foreman <derekf@osg.samsung.com>2017-06-28 11:41:43 -0500
committerDerek Foreman <derekf@osg.samsung.com>2018-08-17 09:25:21 -0500
commitf8f7fd69df5bf318b2da9ec6ce964ac676eb2e29 (patch)
tree2aa05b72312280144326cc819ecf6dd9a0985e06
parentdc1418ae8ebdb3916625f501a4d8ca4a9125b1b1 (diff)
input: add weston_keyboard_send_keymap helper function
We've always had "send_keymap" internally, but some places failed to use it. Since we also use this in the text backend, export it. Reviewed-by: Daniel Stone <daniels@collabora.com>
-rw-r--r--compositor/text-backend.c4
-rw-r--r--libweston/compositor.h4
-rw-r--r--libweston/input.c14
3 files changed, 12 insertions, 10 deletions
diff --git a/compositor/text-backend.c b/compositor/text-backend.c
index 4b2e8543..664c36f7 100644
--- a/compositor/text-backend.c
+++ b/compositor/text-backend.c
@@ -680,9 +680,7 @@ input_method_context_grab_keyboard(struct wl_client *client,
context->keyboard = cr;
- wl_keyboard_send_keymap(cr, WL_KEYBOARD_KEYMAP_FORMAT_XKB_V1,
- keyboard->xkb_info->keymap_fd,
- keyboard->xkb_info->keymap_size);
+ weston_keyboard_send_keymap(keyboard, cr);
if (keyboard->grab != &keyboard->default_grab) {
weston_keyboard_end_grab(keyboard);
diff --git a/libweston/compositor.h b/libweston/compositor.h
index fd0ff7b5..82592eb2 100644
--- a/libweston/compositor.h
+++ b/libweston/compositor.h
@@ -2186,6 +2186,10 @@ void
weston_seat_set_keyboard_focus(struct weston_seat *seat,
struct weston_surface *surface);
+void
+weston_keyboard_send_keymap(struct weston_keyboard *kbd,
+ struct wl_resource *resource);
+
int
weston_compositor_load_xwayland(struct weston_compositor *compositor);
diff --git a/libweston/input.c b/libweston/input.c
index 04c11419..ad1dfeb3 100644
--- a/libweston/input.c
+++ b/libweston/input.c
@@ -2080,9 +2080,11 @@ update_modifier_state(struct weston_seat *seat, uint32_t serial, uint32_t key,
notify_modifiers(seat, serial);
}
-static void
-send_keymap(struct wl_resource *resource, struct weston_xkb_info *xkb_info)
+WL_EXPORT void
+weston_keyboard_send_keymap(struct weston_keyboard *kbd, struct wl_resource *resource)
{
+ struct weston_xkb_info *xkb_info = kbd->xkb_info;
+
wl_keyboard_send_keymap(resource,
WL_KEYBOARD_KEYMAP_FORMAT_XKB_V1,
xkb_info->keymap_fd,
@@ -2146,9 +2148,9 @@ update_keymap(struct weston_seat *seat)
keyboard->xkb_state.state = state;
wl_resource_for_each(resource, &keyboard->resource_list)
- send_keymap(resource, xkb_info);
+ weston_keyboard_send_keymap(keyboard, resource);
wl_resource_for_each(resource, &keyboard->focus_resource_list)
- send_keymap(resource, xkb_info);
+ weston_keyboard_send_keymap(keyboard, resource);
notify_modifiers(seat, wl_display_next_serial(seat->compositor->wl_display));
@@ -2890,9 +2892,7 @@ seat_get_keyboard(struct wl_client *client, struct wl_resource *resource,
seat->compositor->kb_repeat_delay);
}
- wl_keyboard_send_keymap(cr, WL_KEYBOARD_KEYMAP_FORMAT_XKB_V1,
- keyboard->xkb_info->keymap_fd,
- keyboard->xkb_info->keymap_size);
+ weston_keyboard_send_keymap(keyboard, cr);
if (should_send_modifiers_to_client(seat, client)) {
send_modifiers_to_resource(keyboard,