From: SooChan Lim Date: Fri, 11 Jan 2019 04:16:56 +0000 (+0900) Subject: hwc_window: add e_hwc_window_name_set X-Git-Tag: accepted/tizen/unified/20190115.060018~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=8d22ddda8251f82f977cfbc4e290e01dfa049b49;p=platform%2Fupstream%2Fenlightenment.git hwc_window: add e_hwc_window_name_set set the name of the window to the tdm_hwc_window Change-Id: I01bb158a5c0de8f4d9f4e5aba7744bc8cfe309d3 --- diff --git a/src/bin/e_hwc_window.c b/src/bin/e_hwc_window.c index 78f5f6f..22f7fbf 100644 --- a/src/bin/e_hwc_window.c +++ b/src/bin/e_hwc_window.c @@ -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) { diff --git a/src/bin/e_hwc_window.h b/src/bin/e_hwc_window.h index 8a4a595..5c36acf 100644 --- a/src/bin/e_hwc_window.h +++ b/src/bin/e_hwc_window.h @@ -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); diff --git a/src/bin/e_hwc_windows.c b/src/bin/e_hwc_windows.c index 7588be0..5c19275 100644 --- a/src/bin/e_hwc_windows.c +++ b/src/bin/e_hwc_windows.c @@ -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);