discomfitor pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=50381e7911bf4a4b06d42f4b762152615a8123af

commit 50381e7911bf4a4b06d42f4b762152615a8123af
Author: Mike Blumenkrantz <[email protected]>
Date:   Fri May 26 16:34:10 2017 -0400

    ecore-evas: clear cursor object cache when setting default cursor
    
    @fix
---
 src/lib/ecore_evas/ecore_evas.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/src/lib/ecore_evas/ecore_evas.c b/src/lib/ecore_evas/ecore_evas.c
index 4f0ba32dd6..18d544abbf 100644
--- a/src/lib/ecore_evas/ecore_evas.c
+++ b/src/lib/ecore_evas/ecore_evas.c
@@ -1725,12 +1725,14 @@ _ecore_evas_object_cursor_device_set(Ecore_Evas *ee, 
Efl_Input_Device *pointer,
    Ecore_Evas_Cursor *cursor;
    int x, y;
    Evas_Object *old;
+   Efl_Input_Device *dpointer;
 
    ECORE_EVAS_CHECK(ee);
 
+   dpointer = evas_default_device_get(ee->evas, EFL_INPUT_DEVICE_CLASS_MOUSE);
    if (!pointer)
      {
-        pointer = evas_default_device_get(ee->evas, 
EFL_INPUT_DEVICE_CLASS_MOUSE);
+        pointer = dpointer;
         if (!pointer)
           {
              ee->prop.cursor_cache.object = obj;
@@ -1740,6 +1742,8 @@ _ecore_evas_object_cursor_device_set(Ecore_Evas *ee, 
Efl_Input_Device *pointer,
              return;
           }
      }
+   if (pointer == dpointer)
+     memset(&ee->prop.cursor_cache, 0, sizeof(Ecore_Evas_Cursor));
 
    if (obj && ee->engine.func->fn_object_cursor_set)
      ee->engine.func->fn_object_cursor_set(ee, obj, layer, hot_x, hot_y);

-- 


Reply via email to