old_ec->icccm.accepts_focus = EINA_TRUE;
if (new_ec)
- e_service_launcher_callee_register(new_ec, pid, tzlaunch_splash->appid, tzlaunch_splash->path, SPLASH_GROUP_NAME);
+ e_service_launcher_callee_register(new_ec, pid, tzlaunch_splash->appid, tzlaunch_splash->type, tzlaunch_splash->path, SPLASH_GROUP_NAME);
else
- e_service_launcher_callee_register(old_ec, pid, tzlaunch_splash->appid, tzlaunch_splash->path, SPLASH_GROUP_NAME);
+ e_service_launcher_callee_register(old_ec, pid, tzlaunch_splash->appid, tzlaunch_splash->type, tzlaunch_splash->path, SPLASH_GROUP_NAME);
if (tzlaunch_splash->timeout)
{
Eina_Bool delay_del; //refered delay_del
E_Object_Delfn *delfn; //del callback of target E_Client
+ uint32_t splash_type;
const char *splash_path; //path of file for splash
const char *splash_group; //group name for splash
} target; //target window information for transition
{
if (lc->target.splash_path)
{
- target_type = TWS_SERVICE_LAUNCHER_TARGET_TYPE_EDJE;
- target_path = lc->target.splash_path;
- target_group = lc->target.splash_group;
+ switch (lc->target.splash_type)
+ {
+ case 0:
+ target_type = TWS_SERVICE_LAUNCHER_TARGET_TYPE_IMAGE;
+ target_path = lc->target.splash_path;
- len = strlen(target_path) + 1;
- p_char = wl_array_add(&info_array, len);
- EINA_SAFETY_ON_NULL_GOTO(p_char, fail);
+ len = strlen(target_path) + 1;
+ p_char = wl_array_add(&info_array, len);
+ EINA_SAFETY_ON_NULL_GOTO(p_char, fail);
+
+ strncpy(p_char, target_path, len);
+ break;
+ case 1:
+ target_type = TWS_SERVICE_LAUNCHER_TARGET_TYPE_EDJE;
+ target_path = lc->target.splash_path;
+ target_group = lc->target.splash_group;
- strncpy(p_char, target_path, len);
+ len = strlen(target_path) + 1;
+ p_char = wl_array_add(&info_array, len);
+ EINA_SAFETY_ON_NULL_GOTO(p_char, fail);
- len = strlen(target_group) + 1;
- p_char = wl_array_add(&info_array, len);
- EINA_SAFETY_ON_NULL_GOTO(p_char, fail);
+ strncpy(p_char, target_path, len);
- strncpy(p_char, target_group, len);
+ len = strlen(target_group) + 1;
+ p_char = wl_array_add(&info_array, len);
+ EINA_SAFETY_ON_NULL_GOTO(p_char, fail);
+
+ strncpy(p_char, target_group, len);
+ break;
+ default:
+ target_type = TWS_SERVICE_LAUNCHER_TARGET_TYPE_REMOTE_SURFACE;
+ res_id = e_pixmap_res_id_get(target_ec->pixmap);
+
+ p_u32 = wl_array_add(&info_array, sizeof(uint32_t));
+ EINA_SAFETY_ON_NULL_GOTO(p_u32, fail);
+
+ *p_u32 = res_id;
+ }
}
else
{
}
EINTERN void
-e_service_launcher_callee_register(E_Client *callee, pid_t pid, const char *appid, const char *splash_path, const char *splash_group)
+e_service_launcher_callee_register(E_Client *callee, pid_t pid, const char *appid, uint32_t splash_type, const char *splash_path, const char *splash_group)
{
E_Service_Launcher *runner;
{
runner->target.ec = callee;
runner->target.pid = pid;
+ runner->target.splash_type = splash_type;
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) path:%s launch splash image",
- runner->ec, runner->target.ec, runner->target.appid, runner->target.splash_path);
+ ELOGF("LAUNCHER_SRV", "Register callee(%p) by appid(%s) path:%s(%d) launch splash image",
+ runner->ec, runner->target.ec, runner->target.appid, runner->target.splash_path, runner->target.splash_type);
if (runner->target.ec)
_do_launch_splash_image(runner);