diff --git a/legacy/elementary/ChangeLog b/legacy/elementary/ChangeLog index 1075538ea6..80c695c7bd 100644 --- a/legacy/elementary/ChangeLog +++ b/legacy/elementary/ChangeLog @@ -247,11 +247,15 @@ to diasbale access mode. * Add access highlight infra -2012-06-30 Artem Popov +2012-06-30 Artem Popov * Fix panel theme_hook handling for scaling -2012-07-01 Gustavo Sverzut Barbieri (k-s) +2012-07-01 Gustavo Sverzut Barbieri (k-s) * Add and use elm_widget_item_widget_get() * Fix elm_segment_control to not abuse user's data from item. + +2012-07-3 Cedric Bail + + * Initialize Emotion when necessary. diff --git a/legacy/elementary/NEWS b/legacy/elementary/NEWS index ab4d228285..7f4190a237 100644 --- a/legacy/elementary/NEWS +++ b/legacy/elementary/NEWS @@ -16,6 +16,7 @@ Additions: * Add elm_map_overlay_del_cb_set API function * Add "changed" signal to the progressbar widgets * Use Edje to enable accessibility on TEXTBLOCK. + * Initialize Emotion when necessary. Fixes: diff --git a/legacy/elementary/src/lib/elm_main.c b/legacy/elementary/src/lib/elm_main.c index eb976945da..f82b562a6b 100644 --- a/legacy/elementary/src/lib/elm_main.c +++ b/legacy/elementary/src/lib/elm_main.c @@ -14,6 +14,10 @@ # include #endif +#ifdef HAVE_EMOTION +# include +#endif + #include #include "elm_priv.h" @@ -84,6 +88,30 @@ _elm_rescale(void) _elm_ews_wm_rescale(NULL, EINA_FALSE); } +static Eina_Bool _emotion_inited = EINA_FALSE; + +void +_elm_emotion_init(void) +{ + if (_emotion_inited) return ; + +#if HAVE_EMOTION + emotion_init(); + _emotion_inited = EINA_TRUE; +#endif +} + +void +_elm_emotion_shutdown(void) +{ + if (!_emotion_inited) return ; + +#if HAVE_EMOTION + emotion_shutdown(); + _emotion_inited = EINA_FALSE; +#endif +} + static void *app_mainfunc = NULL; static const char *app_domain = NULL; static const char *app_checkfile = NULL; @@ -523,6 +551,9 @@ elm_quicklaunch_shutdown(void) #ifdef HAVE_ELEMENTARY_EMAP emap_shutdown(); #endif +#ifdef HAVE_EMOTION + _elm_emotion_shutdown(); +#endif ecore_shutdown(); eet_shutdown(); diff --git a/legacy/elementary/src/lib/elm_priv.h b/legacy/elementary/src/lib/elm_priv.h index 62d4200230..fd2bc4b90a 100644 --- a/legacy/elementary/src/lib/elm_priv.h +++ b/legacy/elementary/src/lib/elm_priv.h @@ -218,6 +218,9 @@ struct _Elm_Datetime_Module_Data const char *(*field_format_get)(Evas_Object * obj, Elm_Datetime_Field_Type field_type); }; +void _elm_emotion_init(void); +void _elm_emotion_shutdown(void); + int _elm_ews_wm_init(void); void _elm_ews_wm_shutdown(void); void _elm_ews_wm_rescale(Elm_Theme *th, Eina_Bool use_theme); diff --git a/legacy/elementary/src/lib/elm_video.c b/legacy/elementary/src/lib/elm_video.c index beee7c99c8..17d664986c 100644 --- a/legacy/elementary/src/lib/elm_video.c +++ b/legacy/elementary/src/lib/elm_video.c @@ -343,6 +343,8 @@ elm_video_add(Evas_Object *parent) e = evas_object_evas_get(parent); if (!e) return NULL; + _elm_emotion_init(); + obj = evas_object_smart_add(e, _elm_video_smart_class_new()); if (!elm_widget_sub_object_add(parent, obj))