summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarsten Haitzler (Rasterman) <raster@rasterman.com>2019-02-13 11:47:28 +0000
committerCarsten Haitzler (Rasterman) <raster@rasterman.com>2019-02-13 12:03:47 +0000
commit6f4d2bd16d31b13581b637e4bbe96a62cca7dd50 (patch)
tree947e04792aa8ccd37cb1a8d3fa2942db20150827
parent47043b5ddfd57e837779484e9f3295e7294675bd (diff)
downloadenlightenment-6f4d2bd16d31b13581b637e4bbe96a62cca7dd50.tar.gz
e ptr - provide an init signal for ptr to allow smooth fade in on start
-rw-r--r--src/bin/e_pointer.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/bin/e_pointer.c b/src/bin/e_pointer.c
index 4387ede266..3b5a218646 100644
--- a/src/bin/e_pointer.c
+++ b/src/bin/e_pointer.c
@@ -11,6 +11,8 @@ struct _E_Pointer_Stack
static Eina_List *_hdlrs = NULL;
static Eina_List *_ptrs = NULL;
+static Eina_Bool init = EINA_FALSE;
+
static inline void
_e_pointer_theme_buf(E_Pointer *ptr, char cursor[1024])
{
@@ -375,6 +377,12 @@ _e_pointer_x11_setup(E_Pointer *ptr, const char *cursor)
{
e_theme_edje_object_set(ptr->buffer_o_ptr, "base/theme/pointer", cursor);
edje_object_part_swallow(ptr->buffer_o_ptr, "e.swallow.hotspot", ptr->buffer_o_hot);
+ if (!init)
+ {
+ edje_object_signal_emit(ptr->o_ptr, "e,state,init", "e");
+ edje_object_message_signal_process(ptr->o_ptr);
+ init = EINA_TRUE;
+ }
}
return;
}
@@ -457,6 +465,12 @@ _e_pointer_type_set(E_Pointer *ptr, const char *type)
/* try to set the edje object theme */
if (!e_theme_edje_object_set(ptr->o_ptr, "base/theme/pointer", cursor))
cursor[0] = 0;
+ if (!init)
+ {
+ edje_object_signal_emit(ptr->o_ptr, "e,state,init", "e");
+ edje_object_message_signal_process(ptr->o_ptr);
+ init = EINA_TRUE;
+ }
_e_pointer_x11_setup(ptr, cursor);
if (!cursor[0]) return;
@@ -484,6 +498,7 @@ e_pointer_init(void)
_e_pointer_cb_mouse_move, NULL);
E_LIST_HANDLER_APPEND(_hdlrs, ECORE_EVENT_MOUSE_WHEEL,
_e_pointer_cb_mouse_wheel, NULL);
+ init = EINA_FALSE;
return 1;
}
@@ -491,6 +506,7 @@ EINTERN int
e_pointer_shutdown(void)
{
E_FREE_LIST(_hdlrs, ecore_event_handler_del);
+ init = EINA_FALSE;
return 1;
}