forked from enlightenment/enlightenment
add flag for wl clients to determine ssd mouse-in vs client mouse-in
better handling for moving mouse into ssd region with xwl clients
This commit is contained in:
parent
f190a00f16
commit
f6e332946c
|
@ -240,6 +240,10 @@ _e_comp_wl_evas_cb_mouse_in(void *data, Evas *e EINA_UNUSED, Evas_Object *obj, v
|
|||
static void
|
||||
_e_comp_wl_cb_ssd_mouse_in(void *data, Evas_Object *obj EINA_UNUSED, void *event_info)
|
||||
{
|
||||
E_Client *ec = data;
|
||||
|
||||
if (!e_object_is_del(data))
|
||||
ec->comp_data->ssd_mouse_in = 1;
|
||||
_e_comp_wl_mouse_in(data, event_info);
|
||||
}
|
||||
|
||||
|
@ -289,6 +293,10 @@ _e_comp_wl_evas_cb_mouse_out(void *data, Evas *e EINA_UNUSED, Evas_Object *obj E
|
|||
static void
|
||||
_e_comp_wl_cb_ssd_mouse_out(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
|
||||
{
|
||||
E_Client *ec = data;
|
||||
|
||||
if (!e_object_is_del(data))
|
||||
ec->comp_data->ssd_mouse_in = 0;
|
||||
_e_comp_wl_mouse_out(data);
|
||||
}
|
||||
|
||||
|
|
|
@ -358,6 +358,7 @@ struct _E_Comp_Wl_Client_Data
|
|||
Eina_Bool buffer_commit : 1;
|
||||
Eina_Bool need_xdg6_configure : 1;
|
||||
Eina_Bool maximize_anims_disabled : 1;
|
||||
Eina_Bool ssd_mouse_in : 1;
|
||||
};
|
||||
|
||||
struct _E_Comp_Wl_Output
|
||||
|
|
|
@ -76,8 +76,14 @@ _e_comp_wl_input_pointer_cb_cursor_set(struct wl_client *client, struct wl_resou
|
|||
}
|
||||
if (!surface_resource)
|
||||
{
|
||||
ecore_evas_cursor_unset(e_comp->ee);
|
||||
evas_object_hide(e_comp->pointer->o_ptr);
|
||||
if (e_comp_object_frame_exists(ec->frame) &&
|
||||
ec->mouse.in && (!ec->comp_data->ssd_mouse_in))
|
||||
e_pointer_object_set(e_comp->pointer, NULL, 0, 0);
|
||||
else
|
||||
{
|
||||
ecore_evas_cursor_unset(e_comp->ee);
|
||||
evas_object_hide(e_comp->pointer->o_ptr);
|
||||
}
|
||||
return;
|
||||
}
|
||||
ec = wl_resource_get_user_data(surface_resource);
|
||||
|
|
Loading…
Reference in New Issue