diff options
author | Ryuan Choi <ryuan.choi@gmail.com> | 2014-02-28 20:16:20 +0900 |
---|---|---|
committer | Ryuan Choi <ryuan.choi@gmail.com> | 2014-02-28 20:16:20 +0900 |
commit | 74c0cea1ec69136e9c7111be7248744e9e704870 (patch) | |
tree | d73ca8e78ba2ffcce8129217e795204fccffafb6 | |
parent | cfd4179ce7a052c685c1c03f9b98467456578dce (diff) | |
download | elementary-74c0cea1ec69136e9c7111be7248744e9e704870.tar.gz |
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
-rw-r--r-- | src/lib/els_cursor.c | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/src/lib/els_cursor.c b/src/lib/els_cursor.c index d63bf066d..8faf90f66 100644 --- a/src/lib/els_cursor.c +++ b/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) @@ -242,6 +238,17 @@ _elm_cursor_mouse_in(void *data, Evas *evas EINA_UNUSED, Evas_Object *obj EINA_U } 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) { Evas_Object *sobj_parent; @@ -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; } |