only unset current pointer cursor object if new one is being set

#TheDisappointer
This commit is contained in:
Mike Blumenkrantz 2017-02-10 17:23:43 -05:00
parent 0534c7ae6f
commit e3d0fdbf67
1 changed files with 8 additions and 4 deletions

View File

@ -785,8 +785,9 @@ e_pointer_object_set(E_Pointer *ptr, Evas_Object *obj, int x, int y)
{
Evas_Object *o;
E_Client *ec;
int px, py;
ecore_evas_cursor_get(ptr->ee, &o, NULL, NULL, NULL);
ecore_evas_cursor_get(ptr->ee, &o, NULL, &px, &py);
if (o)
{
if (o == obj)
@ -798,17 +799,20 @@ e_pointer_object_set(E_Pointer *ptr, Evas_Object *obj, int x, int y)
if (ec)
ec->hidden = 1;
}
ecore_evas_cursor_unset(ptr->ee);
if (obj)
{
ec = e_comp_object_client_get(obj);
if (ec)
ec->hidden = 1;
ecore_evas_cursor_unset(ptr->ee);
ecore_evas_object_cursor_set(ptr->ee, obj, E_LAYER_MAX - 1, x, y);
}
else if (o != ptr->o_ptr)
ecore_evas_object_cursor_set(ptr->ee, ptr->o_ptr, E_LAYER_MAX - 1, ptr->hot.x, ptr->hot.y);
else if ((o != ptr->o_ptr) || (x != px) || (y != py))
{
ecore_evas_cursor_unset(ptr->ee);
ecore_evas_object_cursor_set(ptr->ee, ptr->o_ptr, E_LAYER_MAX - 1, ptr->hot.x, ptr->hot.y);
}
}
E_API void