e_client/e_policy_wl: add code to handle a new role for aot window 90/313190/1
authorDoyoun Kang <doyoun.kang@samsung.com>
Thu, 20 Jun 2024 00:49:16 +0000 (09:49 +0900)
committerTizen Window System <tizen.windowsystem@gmail.com>
Thu, 20 Jun 2024 04:16:43 +0000 (13:16 +0900)
Change-Id: Iefad3b381411b3383408875f36da4c8e5d9b3594

src/bin/core/e_client.c
src/bin/core/e_client_intern.h
src/bin/server/e_policy_wl.c
src/include/e_client.h

index 6d674a1..8be981b 100644 (file)
@@ -113,6 +113,7 @@ struct _E_Client_Private
    Eina_Bool hide_by_request;
    Eina_Bool focus_check;
    Eina_Bool maximize_pre;
+   E_Aot_Type aot_type;
 
    E_Client *modal;
 };
@@ -7392,3 +7393,26 @@ e_client_video_mode_set(E_Client *ec, Eina_Bool is_video)
    INF("[%s] ec(%p), is_video(%d)\n", __func__, ec, is_video);
    e_input_backend_thread_safe_call(_e_input_thread_client_video_mode_set, &ec_data, sizeof(E_Input_Thread_Request_EClient_Data));
 }
+
+EINTERN void
+e_client_aot_type_set(E_Client *ec, E_Aot_Type type)
+{
+   API_ENTRY;
+   priv->aot_type = type;
+
+   if (type == E_AOT_TYPE_LAUNCHER)
+     {
+        if (ec->frame)
+          {
+             ELOGF("TZPOL", "AOT Launcher window. Set to skip compositing", ec);
+             evas_object_color_set(ec->frame, 0, 0, 0, 0);
+          }
+     }
+}
+
+EINTERN E_Aot_Type
+e_client_aot_type_get(E_Client *ec)
+{
+   API_ENTRY_VAL(E_AOT_TYPE_NONE);
+   return priv->aot_type;
+}
index 6c9af41..de45798 100644 (file)
@@ -157,6 +157,9 @@ EINTERN void      e_client_pending_geometry_last_geometry_get(E_Client *ec, int
 
 EINTERN void      e_client_input_thread_layer_set(E_Client *ec, E_Layer layer);
 
+EINTERN void       e_client_aot_type_set(E_Client *ec, E_Aot_Type type);
+EINTERN E_Aot_Type e_client_aot_type_get(E_Client *ec);
+
 // get a comp_data from a ec
 EINTERN E_Comp_Wl_Client_Data   *e_client_cdata_new(E_Client *ec);
 EINTERN void                     e_client_cdata_free(E_Client *ec);
index 4bb0145..f188a3f 100644 (file)
@@ -1907,6 +1907,10 @@ _tzpol_iface_cb_role_set(struct wl_client *client EINA_UNUSED, struct wl_resourc
         INF("[%s] ec(%p), is_cursor(%d)\n", __func__, ec, ec->is_cursor);
         e_input_backend_thread_safe_call(_e_policy_wl_input_thread_cursor_set, &ec_data, sizeof(E_Input_Thread_Request_EClient_Data));
      }
+   else if (!e_util_strcmp("aot-app_launcher", role))
+     {
+        e_client_aot_type_set(ec, E_AOT_TYPE_LAUNCHER);
+     }
 }
 
 static void
index d109573..40ca323 100644 (file)
@@ -231,6 +231,12 @@ typedef enum _E_Iconified_Type
    E_ICONIFIED_TYPE_PARENT_ICONIFY_BY_CLIENT = 4, // iconified by parent's iconify request
 } E_Iconified_Type;
 
+typedef enum _E_Aot_Type
+{
+   E_AOT_TYPE_NONE,
+   E_AOT_TYPE_LAUNCHER,
+} E_Aot_Type;
+
 #ifdef _F_ZONE_WINDOW_ROTATION_
 typedef struct E_Event_Client E_Event_Client_Rotation_Change_Begin;
 typedef struct E_Event_Client E_Event_Client_Rotation_Change_Cancel;