track the current pointer focus client in wayland compositor

This commit is contained in:
Mike Blumenkrantz 2015-08-04 18:44:23 -04:00
parent acf5d09796
commit e5678549da
2 changed files with 5 additions and 1 deletions

View File

@ -163,6 +163,7 @@ _e_comp_wl_evas_cb_mouse_in(void *data, Evas *evas EINA_UNUSED, Evas_Object *obj
if (!ec->comp_data->surface) return;
e_comp->wl_comp_data->ptr.ec = ec;
if (!eina_list_count(e_comp->wl_comp_data->ptr.resources)) return;
wc = wl_resource_get_client(ec->comp_data->surface);
@ -196,6 +197,8 @@ _e_comp_wl_evas_cb_mouse_out(void *data, Evas *evas EINA_UNUSED, Evas_Object *ob
if (e_comp->pointer->o_ptr != o)
e_pointer_object_set(e_comp->pointer, NULL, 0, 0);
}
if (e_comp->wl_comp_data->ptr.ec == ec)
e_comp->wl_comp_data->ptr.ec = NULL;
if (e_object_is_del(E_OBJECT(ec))) return;
if (!ec->comp_data->surface) return;

View File

@ -159,10 +159,11 @@ struct _E_Comp_Wl_Data
struct
{
Eina_List *resources;
Eina_Bool enabled : 1;
wl_fixed_t x, y;
wl_fixed_t grab_x, grab_y;
uint32_t button;
E_Client *ec;
Eina_Bool enabled : 1;
} ptr;
struct