#include "e_pointer_intern.h"
#include "e_policy_intern.h"
#include "e_utils_intern.h"
+#include "e_zone_intern.h"
struct _E_Seat
{
{
struct wl_resource *res;
struct wl_listener *destroy_listener = NULL;
- E_Comp_Wl_Data *comp_wl = e_comp_wl_get();
E_Client *focused = NULL;
+ E_Seat *seat;
+ seat = wl_resource_get_user_data(resource);
+ if (!seat) return;
/* try to create keyboard resource */
res = wl_resource_create(client, &wl_keyboard_interface,
g_rec_mutex_unlock(&e_comp_input_key->kbd.resources_mutex);
wl_resource_set_implementation(res, &_e_keyboard_interface,
- comp_wl,
+ seat,
_e_seat_cb_keyboard_unbind);
/* send current repeat_info */
TRACE_INPUT_END();
/* if the client owns the focused surface, we need to send an enter */
- focused = e_client_focused_get();
+ focused = e_zone_focused_client_get(seat->zone);
if ((!focused) || (e_object_is_del(E_OBJECT(focused))) ||
(!focused->comp_data)) return;