shell: create tizen_policy global resource for each compositor. 42/241242/2
authorSeunghun Lee <shiin.lee@samsung.com>
Fri, 31 Jul 2020 16:50:05 +0000 (01:50 +0900)
committerSeunghun Lee <shiin.lee@samsung.com>
Wed, 19 Aug 2020 16:45:12 +0000 (01:45 +0900)
The tizen_policy of wl_global has to be created for each compositor.

Change-Id: I92ae52cfd04d4efb3cd2b017989d8c83847dd033

src/lib/compositor.c
src/lib/extensions/tizen_policy.c
src/lib/private.h

index d38f0bf06193ba67ae50af18b19529e914cf661b..8d6b202395a961e742eaeb313978cd01c70ef08a 100644 (file)
@@ -385,7 +385,7 @@ err_output:
 err_input:
    wayland_tbm_server_deinit(comp->tbm_server);
 err_tbm:
-   tizen_policy_shutdown();
+   tizen_policy_shutdown(comp);
 err_extension:
    pepper_efl_shell_shutdown(comp);
 err_shell:
@@ -404,7 +404,7 @@ _pepper_efl_compositor_destroy(pepper_efl_comp_t *comp)
    _pepper_efl_compositor_output_all_del(comp);
 
    pepper_efl_shell_shutdown(comp);
-   tizen_policy_shutdown();
+   tizen_policy_shutdown(comp);
 
    PE_FREE_FUNC(comp->input, pepper_efl_input_destroy);
    PE_FREE_FUNC(comp->name, eina_stringshare_del);
index 4bed7e170afcfde8557ec356303b172c516232b4..45e81f35a797cce4c5d89e968005faa49453b433 100644 (file)
@@ -13,7 +13,6 @@ typedef struct
 } tzpol_surface_t;
 
 const static char       *tsurf_data_key = "tzpol-surf";
-static struct wl_global *_tzpol_global = NULL;
 
 static void
 _tzpol_surface_del(tzpol_surface_t *tsurf)
@@ -665,12 +664,13 @@ tizen_policy_init(pepper_efl_comp_t *comp)
 
    DBG("tizen_policy::init");
 
-   if (_tzpol_global)
-     goto end;
+   if (comp->wl.global.tizen_policy)
+       goto end;
 
    wl_disp = pepper_compositor_get_display(comp->pepper.comp);
-   _tzpol_global = wl_global_create(wl_disp, &tizen_policy_interface, 7, NULL, _tzpol_cb_bind);
-   if (!_tzpol_global)
+   comp->wl.global.tizen_policy =
+       wl_global_create(wl_disp, &tizen_policy_interface, 7, NULL, _tzpol_cb_bind);
+   if (!comp->wl.global.tizen_policy)
      {
         ERR("failed to create global for tizen policy");
         return EINA_FALSE;
@@ -680,12 +680,12 @@ end:
 }
 
 void
-tizen_policy_shutdown(void)
+tizen_policy_shutdown(pepper_efl_comp_t *comp)
 {
    DBG("tizen_policy::shutdown");
 
-   wl_global_destroy(_tzpol_global);
-   _tzpol_global = NULL;
+   wl_global_destroy(comp->wl.global.tizen_policy);
+   comp->wl.global.tizen_policy = NULL;
 }
 
 Eina_Bool
index 262f2fdbae79d4e58528b0e08ec9fb967fe8a738..0aa8ccd4b138dd868b6955bc54a82fc56b26e5cf 100644 (file)
@@ -44,6 +44,7 @@ struct pepper_efl_comp
       struct
         {
            struct wl_global *xdg_shell_v6;
+           struct wl_global *tizen_policy;
         } global;
    } wl;
 
@@ -84,6 +85,6 @@ struct pepper_efl_comp
 #endif
 
 Eina_Bool   tizen_policy_init(pepper_efl_comp_t *comp);
-void        tizen_policy_shutdown(void);
+void        tizen_policy_shutdown(pepper_efl_comp_t *comp);
 
 #endif