e_policy: add intercept point for launchscreen object setup 00/82500/3
authorMinJeong Kim <minjjj.kim@samsung.com>
Tue, 2 Aug 2016 10:40:27 +0000 (19:40 +0900)
committerGwanglim Lee <gl77.lee@samsung.com>
Thu, 4 Aug 2016 01:00:29 +0000 (18:00 -0700)
Change-Id: Ie2cae5aee3ec395331ae0eb1e34ec58149185d2a
Signed-off-by: MinJeong Kim <minjjj.kim@samsung.com>
src/bin/e_policy.c
src/bin/e_policy.h
src/bin/e_policy_wl.c

index e54aec721b2ce759d5f21c6ce8a835d5a4acb992..dec1667879d138b66da6586dcd4064a34f965753 100644 (file)
@@ -17,6 +17,7 @@ static int _e_policy_interceptors_delete = 0;
 
 E_Policy_Interceptor *_e_policy_interceptors[] =
 {
+   [E_POLICY_INTERCEPT_LAUNCHSCREEN_OBJECT_SETUP] = NULL,
 };
 
 static Eina_List *handlers = NULL;
index 93232909f6a7c9004693337fec52a9cd64ac670a..bdb75546bd9c4490b816547192f58099b3e387e3 100644 (file)
@@ -11,6 +11,7 @@ typedef struct _E_Policy_Interceptor E_Policy_Interceptor;
 
 typedef enum _E_Policy_Intercept_Point
 {
+   E_POLICY_INTERCEPT_LAUNCHSCREEN_OBJECT_SETUP,
    E_POLICY_INTERCEPT_LAST,
 } E_Policy_Intercept_Point;
 
index 8764cf2a31e4cd68e2373bd9843f5b26b4534b7d..0820cb1536b53df95e18bcf4ca3d983bdf69c5be 100644 (file)
@@ -4013,7 +4013,11 @@ _launchscreen_hide(uint32_t pid)
         EINA_LIST_FOREACH(plauncher->imglist, ll, pimg)
            if (pimg->pid == pid)
              {
-                DBG("Launch Screen hide | pid %d", pid);
+                ELOGF("TZPOL",
+                      "Launchscreen hide | pid %d",
+                      (pimg->ec ? pimg->ec->pixmap : NULL),
+                      pimg->ec,
+                      pid);
                 _launch_img_off(pimg);
              }
      }
@@ -4092,6 +4096,7 @@ _tzlaunchimg_iface_cb_launch(struct wl_client *client EINA_UNUSED, struct wl_res
    Evas_Load_Error err;
    E_Client *ec = NULL;
    E_Comp_Object_Content_Type content_type = 0;
+   Eina_Bool intercepted = EINA_FALSE;
 
    tzlaunchimg = wl_resource_get_user_data(res_tzlaunchimg);
    EINA_SAFETY_ON_NULL_RETURN(tzlaunchimg);
@@ -4102,48 +4107,64 @@ _tzlaunchimg_iface_cb_launch(struct wl_client *client EINA_UNUSED, struct wl_res
 
    // TO DO
    // invaid parameter handle
-   DBG("%s | path %s(%d), indicator(%d), angle(%d)", __FUNCTION__, pfname, ftype, indicator, angle);
+   ELOGF("TZPOL",
+         "Launchscreen launch | path %s(%d), indicator(%d), angle(%d)",
+         ec->pixmap, ec, pfname, ftype, indicator, angle);
+
    tzlaunchimg->path = pfname;
    tzlaunchimg->type = ftype;
    tzlaunchimg->indicator = indicator;
    tzlaunchimg->angle = angle;
 
-   if (tzlaunchimg->type == E_LAUNCH_FILE_TYPE_IMAGE)
+   intercepted = e_policy_interceptor_call(E_POLICY_INTERCEPT_LAUNCHSCREEN_OBJECT_SETUP,
+                                           ec,
+                                           pfname, ftype, depth,
+                                           angle, indicator, options);
+   if (intercepted)
      {
-        content_type = E_COMP_OBJECT_CONTENT_TYPE_EXT_IMAGE;
-        tzlaunchimg->obj = evas_object_image_add(e_comp->evas);
-        EINA_SAFETY_ON_NULL_GOTO(tzlaunchimg->obj, error);
-        evas_object_image_file_set(tzlaunchimg->obj, tzlaunchimg->path, NULL);
-
-        err = evas_object_image_load_error_get(tzlaunchimg->obj);
-        EINA_SAFETY_ON_FALSE_GOTO(err == EVAS_LOAD_ERROR_NONE, error);
-
-        evas_object_image_fill_set(tzlaunchimg->obj, 0, 0,  e_comp->w, e_comp->h);
-        evas_object_image_filled_set(tzlaunchimg->obj, EINA_TRUE);
+        ELOGF("TZPOL",
+              "Launchscreen object setup was successfully intercepted",
+              ec->pixmap, ec);
      }
    else
      {
-        content_type = E_COMP_OBJECT_CONTENT_TYPE_EXT_EDJE;
-        tzlaunchimg->obj = edje_object_add(e_comp->evas);
-        EINA_SAFETY_ON_NULL_GOTO(tzlaunchimg->obj, error);
-        edje_object_file_set (tzlaunchimg->obj, tzlaunchimg->path, APP_DEFINE_GROUP_NAME);
+        if (tzlaunchimg->type == E_LAUNCH_FILE_TYPE_IMAGE)
+          {
+             content_type = E_COMP_OBJECT_CONTENT_TYPE_EXT_IMAGE;
+             tzlaunchimg->obj = evas_object_image_add(e_comp->evas);
+             EINA_SAFETY_ON_NULL_GOTO(tzlaunchimg->obj, error);
+             evas_object_image_file_set(tzlaunchimg->obj, tzlaunchimg->path, NULL);
 
-        evas_object_move(tzlaunchimg->obj, 0, 0);
-        evas_object_resize(tzlaunchimg->obj, e_comp->w, e_comp->h);
-     }
+             err = evas_object_image_load_error_get(tzlaunchimg->obj);
+             EINA_SAFETY_ON_FALSE_GOTO(err == EVAS_LOAD_ERROR_NONE, error);
+
+             evas_object_image_fill_set(tzlaunchimg->obj, 0, 0,  e_comp->w, e_comp->h);
+             evas_object_image_filled_set(tzlaunchimg->obj, EINA_TRUE);
+          }
+        else
+          {
+             content_type = E_COMP_OBJECT_CONTENT_TYPE_EXT_EDJE;
+             tzlaunchimg->obj = edje_object_add(e_comp->evas);
+             EINA_SAFETY_ON_NULL_GOTO(tzlaunchimg->obj, error);
+             edje_object_file_set (tzlaunchimg->obj, tzlaunchimg->path, APP_DEFINE_GROUP_NAME);
 
-   if (depth == 32) ec->argb = EINA_TRUE;
-   else ec->argb = EINA_FALSE;
+             evas_object_move(tzlaunchimg->obj, 0, 0);
+             evas_object_resize(tzlaunchimg->obj, e_comp->w, e_comp->h);
+          }
 
-   if (!e_comp_object_content_set(ec->frame, tzlaunchimg->obj, content_type))
-     {
-        ERR("Setting comp object content for %p failed!", ec);
-        goto error;
-     }
+        if (depth == 32) ec->argb = EINA_TRUE;
+        else ec->argb = EINA_FALSE;
 
-   evas_object_event_callback_add(tzlaunchimg->obj,
-                                  EVAS_CALLBACK_DEL,
-                                  _launch_img_cb_del, tzlaunchimg);
+        if (!e_comp_object_content_set(ec->frame, tzlaunchimg->obj, content_type))
+          {
+             ERR("Setting comp object content for %p failed!", ec);
+             goto error;
+          }
+
+        evas_object_event_callback_add(tzlaunchimg->obj,
+                                       EVAS_CALLBACK_DEL,
+                                       _launch_img_cb_del, tzlaunchimg);
+     }
 
    tzlaunchimg->valid = EINA_TRUE;
 
@@ -4187,11 +4208,15 @@ _tzlaunchimg_iface_cb_owner(struct wl_client *client EINA_UNUSED, struct wl_reso
 {
    E_Policy_Wl_Tzlaunch_Img *tzlaunchimg;
 
-   DBG("Launch img(%d) pid: %d", wl_resource_get_id(res_tzlaunchimg), pid);
-
    tzlaunchimg = wl_resource_get_user_data(res_tzlaunchimg);
    EINA_SAFETY_ON_NULL_RETURN(tzlaunchimg);
 
+   ELOGF("TZPOL", "Launchscreen img(%d) set owner pid: %d",
+         (tzlaunchimg->ec? tzlaunchimg->ec->pixmap : NULL),
+         tzlaunchimg->ec,
+         wl_resource_get_id(res_tzlaunchimg), pid);
+
+
    tzlaunchimg->pid = pid;
    tzlaunchimg->ec->netwm.pid = pid;
 }