commit 402420f

Michael Forney  ·  2015-10-31 05:33:56 +0000 UTC
parent 0dff35a
Send wl_keyboard.{modifiers,enter} *after* keymap

This fixes a crash in mpv, which creates the xkb state upon keymap, and tries
to use it upon modifiers (even if it hasn't been created yet).
1 files changed,  +2, -1
+2, -1
 1@@ -298,11 +298,12 @@ keyboard_bind(struct keyboard *keyboard, struct wl_client *client, uint32_t vers
 2 
 3 	client_resource = wl_resource_create(client, &wl_keyboard_interface, version, id);
 4 	wl_resource_set_implementation(client_resource, &keyboard_implementation, keyboard, &unbind);
 5-	input_focus_add_resource(&keyboard->focus, client_resource);
 6 
 7 	/* Subtract one to remove terminating NULL character. */
 8 	wl_keyboard_send_keymap(client_resource, WL_KEYBOARD_KEYMAP_FORMAT_XKB_V1, keyboard->xkb.keymap.fd, keyboard->xkb.keymap.size - 1);
 9 
10+	input_focus_add_resource(&keyboard->focus, client_resource);
11+
12 	if (version >= 4)
13 		wl_keyboard_send_repeat_info(client_resource, repeat_rate, repeat_delay);
14