summaryrefslogtreecommitdiff
path: root/src/lib/edje/edje_program.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/edje/edje_program.c')
-rw-r--r--src/lib/edje/edje_program.c19
1 files changed, 14 insertions, 5 deletions
diff --git a/src/lib/edje/edje_program.c b/src/lib/edje/edje_program.c
index d1a398d..b1edd1f 100644
--- a/src/lib/edje/edje_program.c
+++ b/src/lib/edje/edje_program.c
@@ -237,7 +237,8 @@ edje_transition_duration_factor_set(double scale)
237} 237}
238 238
239Eina_Bool 239Eina_Bool
240_edje_object_signal_callback_add(Edje *ed, const char *emission, const char *source, 240_edje_object_signal_callback_add(Evas_Object *obj, Edje *ed,
241 const char *emission, const char *source,
241 Edje_Signal_Cb func_legacy, 242 Edje_Signal_Cb func_legacy,
242 Efl_Signal_Cb func_eo, Eina_Free_Cb func_free_cb, void *data) 243 Efl_Signal_Cb func_eo, Eina_Free_Cb func_free_cb, void *data)
243{ 244{
@@ -253,6 +254,14 @@ _edje_object_signal_callback_add(Edje *ed, const char *emission, const char *sou
253 sig = eina_stringshare_add(emission); 254 sig = eina_stringshare_add(emission);
254 src = eina_stringshare_add(source); 255 src = eina_stringshare_add(source);
255 256
257 // Only load seat callbacks and trigger events just before we might need them.
258 if (!ed->need_seat && sig && !strncmp(sig, "seat,", 5))
259 {
260 ed->need_seat = EINA_TRUE;
261 if (ed->collection)
262 _edje_devices_add(ed, evas_object_evas_get(obj));
263 }
264
256 gp = (Edje_Signal_Callback_Group *) ed->callbacks; 265 gp = (Edje_Signal_Callback_Group *) ed->callbacks;
257 ok = _edje_signal_callback_push(gp, sig, src, func_legacy, func_eo, func_free_cb, data, EINA_TRUE); 266 ok = _edje_signal_callback_push(gp, sig, src, func_legacy, func_eo, func_free_cb, data, EINA_TRUE);
258 267
@@ -269,13 +278,13 @@ edje_object_propagate_callback_add(Evas_Object *obj, Efl_Signal_Cb func, void *d
269 278
270 ed = _edje_fetch(obj); 279 ed = _edje_fetch(obj);
271 if (!ed || ed->delete_me) return; 280 if (!ed || ed->delete_me) return;
272 _edje_object_signal_callback_add(ed, "*", "*", func, NULL, NULL, data); 281 _edje_object_signal_callback_add(obj, ed, "*", "*", func, NULL, NULL, data);
273} 282}
274 283
275Eina_Bool 284Eina_Bool
276_efl_canvas_layout_efl_layout_signal_signal_callback_add(Eo *obj EINA_UNUSED, Edje *ed, const char *emission, const char *source, void *func_data, EflLayoutSignalCb func, Eina_Free_Cb func_free_cb) 285_efl_canvas_layout_efl_layout_signal_signal_callback_add(Eo *obj EINA_UNUSED, Edje *ed, const char *emission, const char *source, void *func_data, EflLayoutSignalCb func, Eina_Free_Cb func_free_cb)
277{ 286{
278 return _edje_object_signal_callback_add(ed, emission, source, NULL, func, func_free_cb, func_data); 287 return _edje_object_signal_callback_add(obj, ed, emission, source, NULL, func, func_free_cb, func_data);
279} 288}
280 289
281Eina_Bool 290Eina_Bool
@@ -311,7 +320,7 @@ _efl_canvas_layout_efl_layout_signal_signal_emit(Eo *obj EINA_UNUSED, Edje *ed,
311 320
312/* FIXDOC: Verify/Expand */ 321/* FIXDOC: Verify/Expand */
313EOLIAN void 322EOLIAN void
314_efl_canvas_layout_animation_set(Eo *obj, Edje *ed, Eina_Bool on) 323_efl_canvas_layout_animated_set(Eo *obj, Edje *ed, Eina_Bool on)
315{ 324{
316 Eina_List *l; 325 Eina_List *l;
317 unsigned short i; 326 unsigned short i;
@@ -381,7 +390,7 @@ break_prog:
381} 390}
382 391
383EOLIAN Eina_Bool 392EOLIAN Eina_Bool
384_efl_canvas_layout_animation_get(const Eo *obj EINA_UNUSED, Edje *ed) 393_efl_canvas_layout_animated_get(const Eo *obj EINA_UNUSED, Edje *ed)
385{ 394{
386 if (!ed) return EINA_FALSE; 395 if (!ed) return EINA_FALSE;
387 if (ed->delete_me) return EINA_FALSE; 396 if (ed->delete_me) return EINA_FALSE;