quickpanel service: support new quickpanel type - apps_menu 47/237347/2 accepted/tizen/unified/20200630.131333 submit/tizen/20200629.103028
authorDoyoun Kang <doyoun.kang@samsung.com>
Mon, 29 Jun 2020 09:36:48 +0000 (18:36 +0900)
committerDoyoun Kang <doyoun.kang@samsung.com>
Mon, 29 Jun 2020 09:39:39 +0000 (09:39 +0000)
Change-Id: I02054fc26b266158907c065bbfa8b2554a77cb01

src/bin/e_policy.c
src/bin/e_policy_private_data.h
src/bin/e_policy_wl.c
src/bin/services/e_service_quickpanel.c

index 4d473a6e959cef4031097a1cb492440ae3430554..17a91f1fec1c5841ebb27d7ce91423965296d5d0 100644 (file)
@@ -1769,6 +1769,9 @@ e_policy_client_is_quickpanel(E_Client *ec)
    if (!e_util_strcmp(ec->icccm.window_role, "quickpanel_context_menu"))
      return EINA_TRUE;
 
+   if (!e_util_strcmp(ec->icccm.window_role, "quickpanel_apps_menu"))
+     return EINA_TRUE;
+
    return EINA_FALSE;
 }
 
index 139ffa960ad5ee619b6e2959c819fa5b5fe1a510..3502e8386d1447a897b3dbf037de4e19ab2e81ed 100644 (file)
@@ -66,7 +66,8 @@ typedef enum
 {
    E_SERVICE_QUICKPANEL_TYPE_UNKNOWN        = 0x0, /* TZSH_QUICKPANEL_SERVICE_TYPE_UNKNOWN        */
    E_SERVICE_QUICKPANEL_TYPE_SYSTEM_DEFAULT = 0x1, /* TZSH_QUICKPANEL_SERVICE_TYPE_SYSTEM_DEFAULT */
-   E_SERVICE_QUICKPANEL_TYPE_CONTEXT_MENU   = 0x2  /* TZSH_QUICKPANEL_SERVICE_TYPE_CONTEXT_MENU   */
+   E_SERVICE_QUICKPANEL_TYPE_CONTEXT_MENU   = 0x2, /* TZSH_QUICKPANEL_SERVICE_TYPE_CONTEXT_MENU   */
+   E_SERVICE_QUICKPANEL_TYPE_APPS_MENU      = 0x3, /* TZSH_QUICKPANEL_SERVICE_TYPE_APPS_MENU      */
 } E_Service_Quickpanel_Type;
 
 typedef enum
@@ -74,6 +75,7 @@ typedef enum
    E_QUICKPANEL_TYPE_UNKNOWN = 0,
    E_QUICKPANEL_TYPE_SYSTEM_DEFAULT = 1,
    E_QUICKPANEL_TYPE_CONTEXT_MENU = 2,
+   E_QUICKPANEL_TYPE_APPS_MENU = 3,
 } E_Quickpanel_Type;
 
 typedef enum
index 30443f29874b2acc95ac2cef6e90fe5f1237c21f..0e0c334a94a61afbe0fc2cbd4abc4944f7f9c185 100644 (file)
@@ -26,6 +26,7 @@ typedef enum _Tzsh_Srv_Role
    TZSH_SRV_ROLE_VOLUME,
    TZSH_SRV_ROLE_QUICKPANEL_SYSTEM_DEFAULT,
    TZSH_SRV_ROLE_QUICKPANEL_CONTEXT_MENU,
+   TZSH_SRV_ROLE_QUICKPANEL_APPS_MENU,
    TZSH_SRV_ROLE_LOCKSCREEN,
    TZSH_SRV_ROLE_INDICATOR,
    TZSH_SRV_ROLE_TVSERVICE,
@@ -753,6 +754,7 @@ _e_policy_wl_tzsh_srv_role_get(const char *name)
    else if (!e_util_strcmp(name, "volume"                   )) role = TZSH_SRV_ROLE_VOLUME;
    else if (!e_util_strcmp(name, "quickpanel_system_default")) role = TZSH_SRV_ROLE_QUICKPANEL_SYSTEM_DEFAULT;
    else if (!e_util_strcmp(name, "quickpanel_context_menu"  )) role = TZSH_SRV_ROLE_QUICKPANEL_CONTEXT_MENU;
+   else if (!e_util_strcmp(name, "quickpanel_apps_menu"     )) role = TZSH_SRV_ROLE_QUICKPANEL_APPS_MENU;
    else if (!e_util_strcmp(name, "lockscreen"               )) role = TZSH_SRV_ROLE_LOCKSCREEN;
    else if (!e_util_strcmp(name, "indicator"                )) role = TZSH_SRV_ROLE_INDICATOR;
    else if (!e_util_strcmp(name, "tvsrv"                    )) role = TZSH_SRV_ROLE_TVSERVICE;
@@ -3515,7 +3517,8 @@ _tzsh_srv_iface_cb_region_set(struct wl_client *client, struct wl_resource *res_
    EINA_SAFETY_ON_NULL_RETURN(tzsh_reg);
 
    if ((tzsh_srv->role == TZSH_SRV_ROLE_QUICKPANEL_SYSTEM_DEFAULT) ||
-       (tzsh_srv->role == TZSH_SRV_ROLE_QUICKPANEL_CONTEXT_MENU))
+       (tzsh_srv->role == TZSH_SRV_ROLE_QUICKPANEL_CONTEXT_MENU) ||
+       (tzsh_srv->role == TZSH_SRV_ROLE_QUICKPANEL_APPS_MENU))
      {
         EINA_SAFETY_ON_NULL_RETURN(tzsh_srv->tzsh);
         EINA_SAFETY_ON_NULL_RETURN(tzsh_srv->tzsh->ec);
@@ -4260,6 +4263,8 @@ _tzsh_iface_cb_srv_create(struct wl_client *client, struct wl_resource *res_tzsh
      e_service_quickpanel_client_add(tzsh->ec, E_SERVICE_QUICKPANEL_TYPE_SYSTEM_DEFAULT);
    else if (role == TZSH_SRV_ROLE_QUICKPANEL_CONTEXT_MENU)
      e_service_quickpanel_client_add(tzsh->ec, E_SERVICE_QUICKPANEL_TYPE_CONTEXT_MENU);
+   else if (role == TZSH_SRV_ROLE_QUICKPANEL_APPS_MENU)
+     e_service_quickpanel_client_add(tzsh->ec, E_SERVICE_QUICKPANEL_TYPE_APPS_MENU);
    else if (role == TZSH_SRV_ROLE_VOLUME)
      e_service_volume_client_set(tzsh->ec);
    else if (role == TZSH_SRV_ROLE_LOCKSCREEN)
index 502d84de5ef1d10479f1e40d01300f6c8c4a13d8..f281926eb7ca3cb822f0b4167d70ee7d58bb0089 100644 (file)
@@ -2065,6 +2065,15 @@ e_service_quickpanel_client_add(E_Client *ec, E_Service_Quickpanel_Type type)
         qp->effect.type = E_SERVICE_QUICKPANEL_EFFECT_TYPE_MOVE;
         e_client_window_role_set(ec, "quickpanel_context_menu");
      }
+   else if (type == E_SERVICE_QUICKPANEL_TYPE_APPS_MENU)
+     {
+        /* don't support swipe type of effect for the qp apps menu in public
+         * you have to make your own qp module and provide backend functions
+         * if you want to change type of effect of qp apps menu
+         */
+        qp->effect.type = E_SERVICE_QUICKPANEL_EFFECT_TYPE_MOVE;
+        e_client_window_role_set(ec, "quickpanel_apps_menu");
+     }
 
    e_comp_screen_rotation_ignore_output_transform_send(qp->ec, EINA_TRUE);