From ff2aa6e679b6455d5f3509b1c3c2d4ce16be1115 Mon Sep 17 00:00:00 2001 From: Ryuan Choi Date: Fri, 28 Feb 2014 20:16:20 +0900 Subject: [PATCH] els_cursor: Fix crash when changing cursor since rELMb515c7477910 Extracted cursor_set from _elm_cursor_mouse_in() to call it without ev. test case: elemntary_test -to cursor --- legacy/elementary/src/lib/els_cursor.c | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/legacy/elementary/src/lib/els_cursor.c b/legacy/elementary/src/lib/els_cursor.c index d63bf066dc..8faf90f668 100644 --- a/legacy/elementary/src/lib/els_cursor.c +++ b/legacy/elementary/src/lib/els_cursor.c @@ -209,14 +209,10 @@ _elm_cursor_set_hot_spots(Elm_Cursor *cur) } static void -_elm_cursor_mouse_in(void *data, Evas *evas EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info) +_elm_cursor_set(Elm_Cursor *cur) { - Elm_Cursor *cur = data; - - Evas_Event_Mouse_In *ev = event_info; - if (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD) return; - if (cur->visible) return; + evas_event_freeze(cur->evas); cur->visible = EINA_TRUE; if (!cur->use_engine) @@ -241,6 +237,17 @@ _elm_cursor_mouse_in(void *data, Evas *evas EINA_UNUSED, Evas_Object *obj EINA_U evas_event_thaw(cur->evas); } +static void +_elm_cursor_mouse_in(void *data, Evas *evas EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info) +{ + Elm_Cursor *cur = data; + + Evas_Event_Mouse_In *ev = event_info; + if (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD) return; + + _elm_cursor_set(cur); +} + static void _elm_cursor_mouse_out(void *data, Evas *evas EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info) { @@ -267,7 +274,7 @@ _elm_cursor_mouse_out(void *data, Evas *evas EINA_UNUSED, Evas_Object *obj EINA_ { pcur->visible = EINA_FALSE; evas_event_thaw(cur->evas); - _elm_cursor_mouse_in(pcur, NULL, NULL, NULL); + _elm_cursor_set(pcur); return; }