tzlaunch_splash->valid = EINA_FALSE;
if (tzlaunch_splash->timeout) ecore_timer_del(tzlaunch_splash->timeout);
tzlaunch_splash->timeout = NULL;
- if (tzlaunch_splash->appid) eina_stringshare_del(tzlaunch_splash->appid);
+
+ eina_stringshare_del(tzlaunch_splash->appid);
tzlaunch_splash->appid = NULL;
+ eina_stringshare_del(tzlaunch_splash->path);
+ tzlaunch_splash->path = NULL;
ELOGF("TZPOL",
"Launchscreen setup | options %p extra_config:%p",
ec, options, extra_config);
- splash->path = pfname;
+ splash->path = eina_stringshare_add(pfname);
splash->type = ftype;
splash->indicator = indicator;
splash->angle = angle;
if (tzlaunch_splash->custom_effect_callee)
{
- e_service_launcher_callee_register(tzlaunch_splash->appid, new_ec);
+ e_service_launcher_callee_register(new_ec, tzlaunch_splash->appid, tzlaunch_splash->path, SPLASH_GROUP_NAME);
}
evas_object_show(new_ec->frame);
if (tzlaunch_splash->custom_effect_callee)
{
- e_service_launcher_callee_register(tzlaunch_splash->appid, old_ec);
+ e_service_launcher_callee_register(old_ec, tzlaunch_splash->appid, tzlaunch_splash->path, SPLASH_GROUP_NAME);
}
evas_object_show(old_ec->frame);
tzlaunch_effect = tzlaunch_splash->tzlaunch_effect;
tzlaunch_effect->splash_list = eina_list_remove(tzlaunch_effect->splash_list, tzlaunch_splash);
+ eina_stringshare_del(tzlaunch_splash->appid);
+ eina_stringshare_del(tzlaunch_splash->path);
memset(tzlaunch_splash, 0x0, sizeof(E_Policy_Wl_Tzlaunch_Splash));
E_FREE(tzlaunch_splash);
}
Eina_Bool delay_del; //refered delay_del
E_Object_Delfn *delfn; //del callback of target E_Client
+
+ const char *splash_path; //path of file for splash
+ const char *splash_group; //group name for splash
} target; //target window information for transition
E_Client *launched_ec; //E_Client was launched by launcher
lc->target.pid = -1;
E_FREE_FUNC(lc->target.appid, eina_stringshare_del);
+ E_FREE_FUNC(lc->target.splash_path, eina_stringshare_del);
+ E_FREE_FUNC(lc->target.splash_group, eina_stringshare_del);
E_FREE_FUNC(lc->buff_attach, ecore_event_handler_del);
//if forward animation is failed, enlightenment can run animation instead.
lc->direction = 0;
E_FREE_FUNC(lc->target.appid, eina_stringshare_del);
+ E_FREE_FUNC(lc->target.splash_path, eina_stringshare_del);
+ E_FREE_FUNC(lc->target.splash_group, eina_stringshare_del);
E_FREE_FUNC(lc->buff_attach, ecore_event_handler_del);
if (target_ec)
EINA_SAFETY_ON_NULL_GOTO(content, fail);
target_type = TWS_SERVICE_LAUNCHER_TARGET_TYPE_EDJE;
- edje_object_file_get(content, &target_path, &target_group);
+ target_path = lc->target.splash_path;
+ target_group = lc->target.splash_group;
+ if ((!target_path) || (!target_group))
+ edje_object_file_get(content, &target_path, &target_group);
EINA_SAFETY_ON_NULL_GOTO(target_path, fail);
EINA_SAFETY_ON_NULL_GOTO(target_group, fail);
runner->target.pid = -1;
runner->target.ec = NULL;
E_FREE_FUNC(runner->target.appid, eina_stringshare_del);
+ E_FREE_FUNC(runner->target.splash_path, eina_stringshare_del);
+ E_FREE_FUNC(runner->target.splash_group, eina_stringshare_del);
break;
default:
break;
runner->serial = 0;
runner->target.ec = NULL;
E_FREE_FUNC(runner->target.appid, eina_stringshare_del);
+ E_FREE_FUNC(runner->target.splash_path, eina_stringshare_del);
+ E_FREE_FUNC(runner->target.splash_group, eina_stringshare_del);
_launcher_stop_send(runner);
_launcher_state_set(runner, LAUNCHER_STATE_IDLE);
}
EINTERN void
-e_service_launcher_callee_register(const char *appid, E_Client *callee)
+e_service_launcher_callee_register(E_Client *callee, const char *appid, const char *splash_path, const char *splash_group)
{
E_Service_Launcher *runner;
if (!e_util_strcmp(appid, runner->target.appid))
{
runner->target.ec = callee;
+ runner->target.splash_path = eina_stringshare_add(splash_path);
+ runner->target.splash_group = eina_stringshare_add(splash_group);
ELOGF("LAUNCHER_SRV", "Register callee(%p) by appid(%s)",
runner->ec, runner->target.ec, runner->target.appid);