input: add weston_keyboard_send_keymap helper function
authorDerek Foreman <derekf@osg.samsung.com>
Wed, 28 Jun 2017 16:41:43 +0000 (11:41 -0500)
committerDerek Foreman <derekf@osg.samsung.com>
Fri, 17 Aug 2018 14:25:21 +0000 (09:25 -0500)
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>
compositor/text-backend.c
libweston/compositor.h
libweston/input.c

index 4b2e854..664c36f 100644 (file)
@@ -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);
index fd0ff7b..82592eb 100644 (file)
@@ -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);
 
index 04c1141..ad1dfeb 100644 (file)
@@ -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,