diff options
author | Jonny Lamb <jonny.lamb@collabora.co.uk> | 2014-08-12 14:58:25 +0200 |
---|---|---|
committer | Pekka Paalanen <pekka.paalanen@collabora.co.uk> | 2014-08-15 15:39:47 +0300 |
commit | 66a41a06e78d7363cbbec4486cf420fc5ab4c3e8 (patch) | |
tree | 0199ac5b30403974cd6eb4600fbab25b76c1db64 /src | |
parent | 05e4a1f768bbeecb357a449924cd8a9f2b6b0112 (diff) | |
download | weston-66a41a06e78d7363cbbec4486cf420fc5ab4c3e8.tar.gz |
compositor: fetch repeat info from weston.ini
Diffstat (limited to 'src')
-rw-r--r-- | src/compositor.c | 5 | ||||
-rw-r--r-- | src/compositor.h | 3 | ||||
-rw-r--r-- | src/input.c | 9 |
3 files changed, 14 insertions, 3 deletions
diff --git a/src/compositor.c b/src/compositor.c index 4d6a02a4..96e3435f 100644 --- a/src/compositor.c +++ b/src/compositor.c @@ -3792,6 +3792,11 @@ weston_compositor_init(struct weston_compositor *ec, if (weston_compositor_xkb_init(ec, &xkb_names) < 0) return -1; + weston_config_section_get_int(s, "repeat-rate", + &ec->kb_repeat_rate, 40); + weston_config_section_get_int(s, "repeat-delay", + &ec->kb_repeat_delay, 400); + text_backend_init(ec); wl_data_device_manager_init(ec->wl_display); diff --git a/src/compositor.h b/src/compositor.h index 102cfa7d..c0fc0a6e 100644 --- a/src/compositor.h +++ b/src/compositor.h @@ -649,6 +649,9 @@ struct weston_compositor { /* Raw keyboard processing (no libxkbcommon initialization or handling) */ int use_xkbcommon; + + int32_t kb_repeat_rate; + int32_t kb_repeat_delay; }; struct weston_buffer { diff --git a/src/input.c b/src/input.c index b6cd7dfa..1ab55cea 100644 --- a/src/input.c +++ b/src/input.c @@ -1721,8 +1721,11 @@ seat_get_keyboard(struct wl_client *client, struct wl_resource *resource, wl_resource_set_implementation(cr, &keyboard_interface, seat, unbind_resource); - if (wl_resource_get_version(cr) >= WL_KEYBOARD_REPEAT_INFO_SINCE_VERSION) - wl_keyboard_send_repeat_info(cr, 30, 200); + if (wl_resource_get_version(cr) >= WL_KEYBOARD_REPEAT_INFO_SINCE_VERSION) { + wl_keyboard_send_repeat_info(cr, + seat->compositor->kb_repeat_rate, + seat->compositor->kb_repeat_delay); + } if (seat->compositor->use_xkbcommon) { wl_keyboard_send_keymap(cr, WL_KEYBOARD_KEYMAP_FORMAT_XKB_V1, @@ -1816,7 +1819,7 @@ bind_seat(struct wl_client *client, void *data, uint32_t version, uint32_t id) enum wl_seat_capability caps = 0; resource = wl_resource_create(client, - &wl_seat_interface, MIN(version, 3), id); + &wl_seat_interface, MIN(version, 4), id); wl_list_insert(&seat->base_resource_list, wl_resource_get_link(resource)); wl_resource_set_implementation(resource, &seat_interface, data, unbind_resource); |