From 50381e7911bf4a4b06d42f4b762152615a8123af Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Fri, 26 May 2017 16:34:10 -0400 Subject: [PATCH] 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);