e_client/e_policy_wl: add code to handle a new role for aot window 83/312583/2
authorDoyoun Kang <doyoun.kang@samsung.com>
Wed, 12 Jun 2024 02:26:16 +0000 (11:26 +0900)
committerDoyoun Kang <doyoun.kang@samsung.com>
Wed, 12 Jun 2024 02:30:41 +0000 (02:30 +0000)
Change-Id: Id1d48605d7ab3e6d63ae77801267b421b42661fa

src/bin/e_client.c
src/bin/e_client.h
src/bin/e_policy_wl.c

index a5bd8a6bea84ab5ead069e69d39fb73be9cb38dd..ed6556ac1cdc0a82662a69fea6c70dc12fff0596 100644 (file)
@@ -7439,3 +7439,15 @@ e_client_destroy_listener_get(E_Client *ec, wl_notify_func_t notify)
    API_ENTRY_VAL(NULL);
    return wl_signal_get(&priv->events.destroy, notify);
 }
+
+EINTERN void e_client_aot_type_set(E_Client *ec, E_Aot_Type type)
+{
+   if (!ec) return;
+   ec->aot_type = type;
+}
+
+EINTERN E_Aot_Type e_client_aot_type_get(E_Client *ec)
+{
+   if (!ec) return E_AOT_TYPE_NONE;
+   else return ec->aot_type;
+}
index c19da87b6c87e23949996c93e7bf1d7f2d193bc9..09b90839fa57ba5570f39549fa2d336bc1c857ec 100644 (file)
@@ -223,6 +223,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;
+
 typedef struct E_Client E_Client;
 
 typedef struct E_Event_Client E_Event_Client;
@@ -1035,6 +1041,8 @@ struct E_Client
       int                  cframes;
       int                  flapse;
    } fps;
+
+   E_Aot_Type aot_type;
 };
 
 #define e_client_focus_policy_click(ec) \
@@ -1359,6 +1367,9 @@ e_client_util_move_without_frame(E_Client *ec, int x, int y)
    evas_object_move(ec->frame, x, y);
 }
 
+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);
+
 /**
  * Resize window to values that do not account client decorations yet.
  *
index fef1f5116e5de0d0a1ff05da20b61aae3d19aac4..354ac4e7d191ac4d622d311febbfe30934996ec7 100644 (file)
@@ -1872,6 +1872,15 @@ _tzpol_iface_cb_role_set(struct wl_client *client EINA_UNUSED, struct wl_resourc
         ec->is_cursor = EINA_TRUE;
         e_client_desk_iconify_skip_set(ec, EINA_TRUE);
      }
+   else if (!e_util_strcmp("aot-app_launcher", role))
+     {
+        e_client_aot_type_set(ec, 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);
+          }
+     }
 }
 
 static void