summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Blumenkrantz <zmike@osg.samsung.com>2017-02-10 17:23:43 -0500
committerMike Blumenkrantz <zmike@osg.samsung.com>2017-02-24 14:47:40 -0500
commit239dad4ec990cd220e1d872c430788a4520f6a4f (patch)
tree324855f99ed24ffdb8407c3c6b90d1dfba1226de
parent2e7e1f0893326c9e75e51f5d7a4b8bbbf3dc12a4 (diff)
downloadenlightenment-239dad4ec990cd220e1d872c430788a4520f6a4f.tar.gz
only unset current pointer cursor object if new one is being set
#TheDisappointer
-rw-r--r--src/bin/e_pointer.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/bin/e_pointer.c b/src/bin/e_pointer.c
index 656e34c223..7c21e53d75 100644
--- a/src/bin/e_pointer.c
+++ b/src/bin/e_pointer.c
@@ -777,8 +777,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)
@@ -790,17 +791,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