From: SooChan Lim Date: Fri, 30 May 2025 02:47:42 +0000 (+0900) Subject: e_tizen_wl_shell: make e_tizen_wl_shell_launcher.c file X-Git-Tag: accepted/tizen/unified/20250613.040658~7 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fchanges%2F04%2F325604%2F1;p=platform%2Fupstream%2Fenlightenment.git e_tizen_wl_shell: make e_tizen_wl_shell_launcher.c file Move the launcher impelementation to this e_tizen_ws_shell_launcher.c file.v Change-Id: Ib159d5bd08570e239016e60c2eb3f215933e46db --- diff --git a/src/bin/Makefile.mk b/src/bin/Makefile.mk index 73e12434cb..bb42d32752 100644 --- a/src/bin/Makefile.mk +++ b/src/bin/Makefile.mk @@ -213,6 +213,7 @@ src/bin/server/e_tizen_ws_shell_srv_screensaver_manager.c \ src/bin/server/e_tizen_ws_shell_srv_screensaver.c \ src/bin/server/e_tizen_ws_shell_srv_softkey.c \ src/bin/server/e_tizen_ws_shell_srv_magnifier.c \ +src/bin/server/e_tizen_ws_shell_srv_launcher.c \ src/bin/server/e_tizen_indicator.c \ src/bin/server/e_tizen_clipboard.c \ src/bin/server/e_surface_view.c \ diff --git a/src/bin/meson.build b/src/bin/meson.build index ecb903cc62..bb48b5b67e 100644 --- a/src/bin/meson.build +++ b/src/bin/meson.build @@ -217,6 +217,7 @@ e_sources = [ 'server/e_tizen_ws_shell_srv_screensaver.c', 'server/e_tizen_ws_shell_srv_softkey.c', 'server/e_tizen_ws_shell_srv_magnifier.c', + 'server/e_tizen_ws_shell_srv_launcher.c', 'server/e_tizen_indicator.c', 'server/e_tizen_clipboard.c', 'server/e_surface_view.c', diff --git a/src/bin/server/e_tizen_ws_shell_manager.c b/src/bin/server/e_tizen_ws_shell_manager.c index acf9d2b880..3fc7385c5d 100644 --- a/src/bin/server/e_tizen_ws_shell_manager.c +++ b/src/bin/server/e_tizen_ws_shell_manager.c @@ -21,6 +21,7 @@ #include "e_tizen_ws_shell_srv_screensaver_intern.h" #include "e_tizen_ws_shell_srv_softkey_intern.h" #include "e_tizen_ws_shell_srv_magnifier_intern.h" +#include "e_tizen_ws_shell_srv_launcher_intern.h" #include @@ -810,7 +811,6 @@ static void _tzsh_srv_iface_cb_launcher_get(struct wl_client *client, struct wl_resource *res_tzsh_srv, uint32_t id) { E_Tizen_Ws_Shell_Srv *tzsh_srv; - struct wl_resource *res; tzsh_srv = wl_resource_get_user_data(res_tzsh_srv); EINA_SAFETY_ON_NULL_RETURN(tzsh_srv); @@ -819,15 +819,24 @@ _tzsh_srv_iface_cb_launcher_get(struct wl_client *client, struct wl_resource *re if (!eina_list_data_find(g_tizen_ws_shell_mgr->tzsh_srvs, tzsh_srv)) return; - res = wl_resource_create(client, &tws_service_launcher_interface, 1, id); - if (!res) + if (tzsh_srv->role != TZSH_SRV_ROLE_LAUNCHER) { - wl_client_post_no_memory(client); + ERR("Could not find launcher service"); + tizen_ws_shell_send_error(res_tzsh_srv, + TIZEN_WS_SHELL_ERROR_NO_SERVICE); return; } - if (tzsh_srv->ec) - e_service_launcher_resource_set(tzsh_srv->ec, res); + tzsh_srv->client = client; + tzsh_srv->id = id; + + if (!e_tizen_ws_shell_srv_launcher_init(tzsh_srv)) + { + ERR("e_tizen_ws_shell_srv_launcher_init() failed."); + tizen_ws_shell_send_error(res_tzsh_srv, + TIZEN_WS_SHELL_ERROR_NOT_SUPPORTED); + return; + } } static void diff --git a/src/bin/server/e_tizen_ws_shell_srv_launcher.c b/src/bin/server/e_tizen_ws_shell_srv_launcher.c new file mode 100644 index 0000000000..82a4c0461c --- /dev/null +++ b/src/bin/server/e_tizen_ws_shell_srv_launcher.c @@ -0,0 +1,29 @@ +#include "e_tizen_ws_shell_srv_launcher_intern.h" +#include "services/e_service_launcher_intern.h" + +#include + +EINTERN Eina_Bool +e_tizen_ws_shell_srv_launcher_init(E_Tizen_Ws_Shell_Srv *tzsh_srv) +{ + struct wl_client *client; + struct wl_resource *res; + uint32_t id; + + EINA_SAFETY_ON_NULL_RETURN_VAL(tzsh_srv, EINA_FALSE); + + client = tzsh_srv->client; + id = tzsh_srv->id; + + res = wl_resource_create(client, &tws_service_launcher_interface, 1, id); + if (!res) + { + wl_client_post_no_memory(client); + return EINA_FALSE; + } + + if (tzsh_srv->ec) + e_service_launcher_resource_set(tzsh_srv->ec, res); + + return EINA_TRUE; +} diff --git a/src/bin/server/e_tizen_ws_shell_srv_launcher_intern.h b/src/bin/server/e_tizen_ws_shell_srv_launcher_intern.h new file mode 100644 index 0000000000..cbd4eaecfe --- /dev/null +++ b/src/bin/server/e_tizen_ws_shell_srv_launcher_intern.h @@ -0,0 +1,9 @@ +#ifndef E_TIZEN_WS_SHELL_SRV_LAUNCHER_INTERN_H +#define E_TIZEN_WS_SHELL_SRV_LAUNCHER_INTERN_H + +#include "e_intern.h" +#include "e_tizen_ws_shell_manager_intern.h" + +EINTERN Eina_Bool e_tizen_ws_shell_srv_launcher_init(E_Tizen_Ws_Shell_Srv *tzsh_srv); + +#endif