e_service_launcher: pass correct launchscreen path 97/225097/1
authorMinJeong Kim <minjjj.kim@samsung.com>
Mon, 17 Feb 2020 08:53:41 +0000 (17:53 +0900)
committerMinJeong Kim <minjjj.kim@samsung.com>
Mon, 17 Feb 2020 09:21:51 +0000 (18:21 +0900)
Change-Id: Ie87c030c4448d41034b330b6910a746965466f8d
Signed-off-by: MinJeong Kim <minjjj.kim@samsung.com>
src/bin/e_policy_wl.c
src/bin/services/e_service_launcher.c
src/bin/services/e_service_launcher.h

index 112983d8acca00ae8e684aa540d4fd4753167518..d683ee5cadbcec97f2ecfa9265016e0209a730f9 100644 (file)
@@ -5933,8 +5933,11 @@ _launch_splash_off(E_Policy_Wl_Tzlaunch_Splash *tzlaunch_splash)
    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",
@@ -6037,7 +6040,7 @@ _launchscreen_splash_setup(E_Policy_Wl_Tzlaunch_Splash *splash,
          "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;
@@ -6318,7 +6321,7 @@ _tzlaunch_splash_iface_cb_owner(struct wl_client *client EINA_UNUSED, struct wl_
 
              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);
@@ -6361,7 +6364,7 @@ _tzlaunch_splash_iface_cb_owner(struct wl_client *client EINA_UNUSED, struct wl_
 
         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);
@@ -6499,6 +6502,8 @@ _tzlaunch_splash_destroy(struct wl_resource *res_tzlaunch_splash)
    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);
 }
index 6b84ab5fa95143bb8a2c0719a8074e424f3eab9a..ad7c8a1561de109447159178004c2cef20c646f1 100644 (file)
@@ -38,6 +38,9 @@ struct _E_Service_Launcher
 
         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
@@ -187,6 +190,8 @@ _launcher_post_forward(E_Service_Launcher *lc, Eina_Bool success)
    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.
@@ -231,6 +236,8 @@ _launcher_post_backward(E_Service_Launcher *lc, Eina_Bool success)
    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)
@@ -325,7 +332,10 @@ _launcher_prepare_send(E_Service_Launcher *lc,
               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);
 
@@ -1248,6 +1258,8 @@ _launcher_handler_launcher_runner_set(E_Service_Launcher *lc)
               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;
@@ -1614,6 +1626,8 @@ send_stop:
    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);
@@ -1995,7 +2009,7 @@ e_service_launcher_release_shared_widget_launch(E_Client *ec)
 }
 
 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;
 
@@ -2010,6 +2024,8 @@ e_service_launcher_callee_register(const char *appid, E_Client *callee)
         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);
index f3e01a3912398c6e913dca881bdeb8d28224c0c0..9b3440d13c507918dd334a2c74a095ba53075337 100644 (file)
@@ -10,6 +10,6 @@ EINTERN void              e_service_launcher_client_unset(E_Client *ec);
 EINTERN void              e_service_launcher_prepare_send_with_shared_widget_info(E_Client *target_ec, const char *shared_widget_info, uint32_t state, uint32_t serial);
 EINTERN void              e_service_launcher_release_shared_widget_launch(E_Client *ec);
 
-EINTERN void              e_service_launcher_callee_register(const char *appid, E_Client *callee);
+EINTERN void              e_service_launcher_callee_register(E_Client *callee, const char *appid, const char *splash_path, const char *splash_group);
 
 #endif