From efc24f2878030efc0d26e8f8c724a907f670f00b Mon Sep 17 00:00:00 2001 From: Doyoun Kang Date: Mon, 29 Jun 2020 18:36:48 +0900 Subject: [PATCH] quickpanel service: support new quickpanel type - apps_menu Change-Id: I02054fc26b266158907c065bbfa8b2554a77cb01 --- src/bin/e_policy.c | 3 +++ src/bin/e_policy_private_data.h | 4 +++- src/bin/e_policy_wl.c | 7 ++++++- src/bin/services/e_service_quickpanel.c | 9 +++++++++ 4 files changed, 21 insertions(+), 2 deletions(-) diff --git a/src/bin/e_policy.c b/src/bin/e_policy.c index 4d473a6e95..17a91f1fec 100644 --- a/src/bin/e_policy.c +++ b/src/bin/e_policy.c @@ -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; } diff --git a/src/bin/e_policy_private_data.h b/src/bin/e_policy_private_data.h index 139ffa960a..3502e8386d 100644 --- a/src/bin/e_policy_private_data.h +++ b/src/bin/e_policy_private_data.h @@ -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 diff --git a/src/bin/e_policy_wl.c b/src/bin/e_policy_wl.c index 30443f2987..0e0c334a94 100644 --- a/src/bin/e_policy_wl.c +++ b/src/bin/e_policy_wl.c @@ -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) diff --git a/src/bin/services/e_service_quickpanel.c b/src/bin/services/e_service_quickpanel.c index 502d84de5e..f281926eb7 100644 --- a/src/bin/services/e_service_quickpanel.c +++ b/src/bin/services/e_service_quickpanel.c @@ -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); -- 2.34.1