summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRyuan Choi <ryuan.choi@gmail.com>2014-02-28 20:16:20 +0900
committerRyuan Choi <ryuan.choi@gmail.com>2014-02-28 20:16:20 +0900
commit74c0cea1ec69136e9c7111be7248744e9e704870 (patch)
treed73ca8e78ba2ffcce8129217e795204fccffafb6
parentcfd4179ce7a052c685c1c03f9b98467456578dce (diff)
downloadelementary-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.c21
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;
}