hwc_window: add e_hwc_window_name_set 21/197521/3
authorSooChan Lim <sc1.lim@samsung.com>
Fri, 11 Jan 2019 04:16:56 +0000 (13:16 +0900)
committerSooChan Lim <sc1.lim@samsung.com>
Mon, 14 Jan 2019 04:56:51 +0000 (04:56 +0000)
set the name of the window to the tdm_hwc_window

Change-Id: I01bb158a5c0de8f4d9f4e5aba7744bc8cfe309d3

src/bin/e_hwc_window.c
src/bin/e_hwc_window.h
src/bin/e_hwc_windows.c

index 78f5f6f..22f7fbf 100644 (file)
@@ -1606,6 +1606,33 @@ e_hwc_window_name_get(E_Hwc_Window *hwc_window)
    return name;
 }
 
+EINTERN void
+e_hwc_window_name_set(E_Hwc_Window *hwc_window)
+{
+   const char *name = NULL;
+   tdm_error ret;
+   Eina_Bool no_name = EINA_FALSE;
+
+   EINA_SAFETY_ON_NULL_RETURN(hwc_window);
+
+   if (hwc_window->set_name) return;
+
+   name = e_client_util_name_get(hwc_window->ec);
+   if (!name)
+     {
+        name = "UNKNOWN";
+        no_name = EINA_TRUE;
+     }
+
+   ret = tdm_hwc_window_set_name(hwc_window->thwc_window, name);
+   EINA_SAFETY_ON_TRUE_RETURN(ret != TDM_ERROR_NONE);
+
+   /* the name may be set later */
+   if (no_name) return;
+
+   hwc_window->set_name = EINA_TRUE;
+}
+
 EINTERN Eina_Bool
 e_hwc_window_set_property(E_Hwc_Window *hwc_window, unsigned int id, const char *name, tdm_value value, Eina_Bool force)
 {
index 8a4a595..5c36acf 100644 (file)
@@ -81,6 +81,7 @@ struct _E_Hwc_Window
    Eina_Bool                      is_video;
    Eina_Bool                      is_cursor;
    Eina_Bool                      is_deleted;
+   Eina_Bool                      set_name;
 
    E_Hwc_Window_Activation_State  activation_state; /* hwc_window has occupied the hw layer or not */
 
@@ -178,6 +179,7 @@ EINTERN Eina_Bool          e_hwc_window_rendered_window_update(E_Hwc_Window *hwc
 EINTERN void               e_hwc_window_buffer_set(E_Hwc_Window *hwc_window, tbm_surface_h tsurface, E_Hwc_Window_Queue *queue);
 EINTERN const char        *e_hwc_window_state_string_get(E_Hwc_Window_State hwc_window_state);
 EINTERN const char        *e_hwc_window_name_get(E_Hwc_Window *hwc_window);
+EINTERN void               e_hwc_window_name_set(E_Hwc_Window *hwc_window);
 EINTERN Eina_Bool          e_hwc_window_set_property(E_Hwc_Window *hwc_window, unsigned int id, const char *name, tdm_value value, Eina_Bool force);
 
 EINTERN E_Hwc_Window_Hook *e_hwc_window_hook_add(E_Hwc_Window_Hook_Point hookpoint, E_Hwc_Window_Hook_Cb func, const void *data);
index 7588be0..5c19275 100644 (file)
@@ -1559,6 +1559,8 @@ _e_hwc_windows_visible_windows_list_get(E_Hwc *hwc)
 
         hwc_window = ec->hwc_window;
 
+        e_hwc_window_name_set(hwc_window);
+
         if (e_object_is_del(E_OBJECT(ec)))
           {
              e_hwc_window_state_set(hwc_window, E_HWC_WINDOW_STATE_NONE, EINA_TRUE);