diff --git a/src/wayland/meta-wayland-seat.c b/src/wayland/meta-wayland-seat.c index 82ceeb5cc..9b60fb75f 100644 --- a/src/wayland/meta-wayland-seat.c +++ b/src/wayland/meta-wayland-seat.c @@ -25,6 +25,7 @@ #include "meta-wayland-private.h" #include "meta-wayland-versions.h" +#include "meta-wayland-data-device.h" static void unbind_resource (struct wl_resource *resource) @@ -193,6 +194,14 @@ meta_wayland_seat_repick (MetaWaylandSeat *seat) meta_wayland_pointer_repick (&seat->pointer); } +void +meta_wayland_seat_set_input_focus (MetaWaylandSeat *seat, + MetaWaylandSurface *surface) +{ + meta_wayland_keyboard_set_focus (&seat->keyboard, surface); + meta_wayland_data_device_set_keyboard_focus (seat); +} + void meta_wayland_seat_update_cursor_surface (MetaWaylandSeat *seat) { diff --git a/src/wayland/meta-wayland-seat.h b/src/wayland/meta-wayland-seat.h index 68bad5820..dd8caeb2b 100644 --- a/src/wayland/meta-wayland-seat.h +++ b/src/wayland/meta-wayland-seat.h @@ -56,6 +56,9 @@ void meta_wayland_seat_update (MetaWaylandSeat *seat, gboolean meta_wayland_seat_handle_event (MetaWaylandSeat *seat, const ClutterEvent *event); +void meta_wayland_seat_set_input_focus (MetaWaylandSeat *seat, + MetaWaylandSurface *surface); + void meta_wayland_seat_repick (MetaWaylandSeat *seat); void meta_wayland_seat_update_cursor_surface (MetaWaylandSeat *seat); diff --git a/src/wayland/meta-wayland.c b/src/wayland/meta-wayland.c index ff9709a07..705c8c1bf 100644 --- a/src/wayland/meta-wayland.c +++ b/src/wayland/meta-wayland.c @@ -187,9 +187,7 @@ meta_wayland_compositor_set_input_focus (MetaWaylandCompositor *compositor, { MetaWaylandSurface *surface = window ? window->surface : NULL; - meta_wayland_keyboard_set_focus (&compositor->seat->keyboard, - surface); - meta_wayland_data_device_set_keyboard_focus (compositor->seat); + meta_wayland_seat_set_input_focus (compositor->seat, surface); } void