#include "e_utils_intern.h"
static Eina_List *_ecore_event_handlers = NULL;
+static Eina_List *_seats = NULL;
static void
_e_seat_cb_pointer_unbind(struct wl_resource *resource)
ecore_event_handler_del(h);
_ecore_event_handlers = NULL;
+
+ e_seat_destroy_all();
+}
+
+EINTERN Eina_List *
+e_seat_list_get()
+{
+ return _seats;
}
EINTERN E_Seat *
}
seat->resources = NULL;
- comp_wl->seats = eina_list_append(comp_wl->seats, seat);
+ _seats = eina_list_append(_seats, seat);
return seat;
}
EINTERN void
e_seat_destroy(E_Seat *seat)
{
- E_Comp_Wl_Data *comp_wl = e_comp_wl_get();
struct wl_resource *res;
EINA_LIST_FREE(seat->ptr.resources, res)
EINA_LIST_FREE(seat->resources, res)
wl_resource_destroy(res);
- comp_wl->seats = eina_list_remove(comp_wl->seats, seat);
+ _seats = eina_list_remove(_seats, seat);
wl_global_destroy(seat->global);
}
{
Eina_List *l;
E_Seat *seat;
- E_Comp_Wl_Data *comp_wl = e_comp_wl_get();
- EINA_LIST_FOREACH(comp_wl->seats, l, seat)
+ EINA_LIST_FOREACH(_seats, l, seat)
{
if (seat->name && !strcmp(seat->name, name))
return seat;
{
Eina_List *l, *ll;
struct wl_resource *res;
- E_Comp_Wl_Data *comp_wl = e_comp_wl_get();
E_Seat *s;
if (!seat) goto iterate;
return;
iterate:
- EINA_LIST_FOREACH(comp_wl->seats, l, s)
+ EINA_LIST_FOREACH(_seats, l, s)
{
EINA_LIST_FOREACH(s->touch.resources, ll, res)
{
return;
iterate:
- EINA_LIST_FOREACH(comp_wl->seats, l, s)
+ EINA_LIST_FOREACH(_seats, l, s)
{
EINA_LIST_FOREACH(s->touch.resources, ll, res)
{
{
Eina_List *l, *ll;
struct wl_resource *res;
- E_Comp_Wl_Data *comp_wl = e_comp_wl_get();
E_Seat *s;
if (!seat) goto iterate;
return;
iterate:
- EINA_LIST_FOREACH(comp_wl->seats, l, s)
+ EINA_LIST_FOREACH(_seats, l, s)
{
EINA_LIST_FOREACH(s->touch.resources, ll, res)
{
{
Eina_List *l, *ll;
struct wl_resource *res;
- E_Comp_Wl_Data *comp_wl = e_comp_wl_get();
E_Seat *s;
if (!seat) goto iterate;
return;
iterate:
- EINA_LIST_FOREACH(comp_wl->seats, l, s)
+ EINA_LIST_FOREACH(_seats, l, s)
{
EINA_LIST_FOREACH(s->touch.resources, ll, res)
{
iterate:
Eina_List *l;
- E_Comp_Wl_Data *comp_wl = e_comp_wl_get();
- EINA_LIST_FOREACH(comp_wl->seats, l, seat)
+ EINA_LIST_FOREACH(_seats, l, seat)
{
if (eina_list_count(seat->touch.resources))
return EINA_FALSE;
{
Eina_List *l, *ll;
struct wl_resource *res;
- E_Comp_Wl_Data *comp_wl = e_comp_wl_get();
E_Seat *s;
if (!seat) goto iterate;
return;
iterate:
- EINA_LIST_FOREACH(comp_wl->seats, l, s)
+ EINA_LIST_FOREACH(_seats, l, s)
{
EINA_LIST_FOREACH(s->ptr.resources, ll, res)
{
return;
iterate:
- EINA_LIST_FOREACH(comp_wl->seats, l, s)
+ EINA_LIST_FOREACH(_seats, l, s)
{
EINA_LIST_FOREACH(s->ptr.resources, ll, res)
{
return;
iterate:
- EINA_LIST_FOREACH(comp_wl->seats, l, s)
+ EINA_LIST_FOREACH(_seats, l, s)
{
EINA_LIST_FOREACH(s->ptr.resources, ll, res)
{
return;
iterate:
- EINA_LIST_FOREACH(comp_wl->seats, l, s)
+ EINA_LIST_FOREACH(_seats, l, s)
{
EINA_LIST_FOREACH(s->ptr.resources, ll, res)
{
{
Eina_List *l, *ll;
struct wl_resource *res;
- E_Comp_Wl_Data *comp_wl = e_comp_wl_get();
E_Seat *s;
if (!seat) goto iterate;
return;
iterate:
- EINA_LIST_FOREACH(comp_wl->seats, l, s)
+ EINA_LIST_FOREACH(_seats, l, s)
{
EINA_LIST_FOREACH(s->ptr.resources, ll, res)
{
iterate:
Eina_List *l;
- E_Comp_Wl_Data *comp_wl = e_comp_wl_get();
- EINA_LIST_FOREACH(comp_wl->seats, l, seat)
+ EINA_LIST_FOREACH(_seats, l, seat)
{
if (seat->ptr.enabled) return EINA_TRUE;
}
iterate:
Eina_List *l;
- E_Comp_Wl_Data *comp_wl = e_comp_wl_get();
- EINA_LIST_FOREACH(comp_wl->seats, l, seat)
+ EINA_LIST_FOREACH(_seats, l, seat)
{
if (eina_list_count(seat->ptr.resources))
return EINA_FALSE;
return wl_resource_instance_of(res, &wl_keyboard_interface,
&_e_keyboard_interface);
}
+
+EINTERN void
+e_seat_destroy_all()
+{
+ E_Seat *seat;
+ EINA_LIST_FREE(_seats, seat)
+ {
+ e_seat_destroy(seat);
+ }
+}