compositor: set data_device keyboard focus in seat_get_keyboard

Because seat_get_keyboard is called after initial
weston_surface_activate, wl_data_device_set_keyboard_focus
fails to send data offer for newly connected client due to
wl_seat.focus_resource being NULL.

This patch calls wl_data_device_set_keyboard_focus
in seat_get_keyboard, so it can send data offer for
newly created client (when wl_keyboard.resource_list
and wl_seat.focus_resource are properly set up).

https://bugs.freedesktop.org/show_bug.cgi?id=60617
This commit is contained in:
Rafal Mielniczuk 2013-02-17 15:55:55 +01:00 committed by Kristian Høgsberg
parent 8764466c6b
commit db790573ad

View File

@ -2306,6 +2306,7 @@ seat_get_keyboard(struct wl_client *client, struct wl_resource *resource,
seat->seat.keyboard->focus->resource.client == client) {
wl_keyboard_set_focus(seat->seat.keyboard,
seat->seat.keyboard->focus);
wl_data_device_set_keyboard_focus(&seat->seat);
}
}