devilhorns pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=bdcf798dba4df1ac45aa4b26313fcf5769c8b77b

commit bdcf798dba4df1ac45aa4b26313fcf5769c8b77b
Author: Chris Michael <[email protected]>
Date:   Thu Jun 15 10:53:08 2017 -0400

    ecore-wl2: Add API to set window role
    
    Small patch to add support for setting a window role on a given window
    
    "#divergence"
    
    @feature
    
    Signed-off-by: Chris Michael <[email protected]>
---
 src/lib/ecore_wl2/Ecore_Wl2.h         | 11 +++++++++++
 src/lib/ecore_wl2/ecore_wl2_private.h |  1 +
 src/lib/ecore_wl2/ecore_wl2_window.c  |  8 ++++++++
 3 files changed, 20 insertions(+)

diff --git a/src/lib/ecore_wl2/Ecore_Wl2.h b/src/lib/ecore_wl2/Ecore_Wl2.h
index 999d2dadb8..39926635bc 100644
--- a/src/lib/ecore_wl2/Ecore_Wl2.h
+++ b/src/lib/ecore_wl2/Ecore_Wl2.h
@@ -1206,6 +1206,17 @@ EAPI void 
ecore_wl2_window_focus_skip_set(Ecore_Wl2_Window *window, Eina_Bool fo
 EAPI Eina_Bool ecore_wl2_window_focus_skip_get(Ecore_Wl2_Window *window);
 
 /**
+ * Set the role of a given window
+ *
+ * @param window
+ * @param role
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.20
+ */
+EAPI void ecore_wl2_window_role_set(Ecore_Wl2_Window *window, const char 
*role);
+
+/**
  * @defgroup Ecore_Wl2_Input_Group Wayland Library Input Functions
  * @ingroup Ecore_Wl2_Group
  *
diff --git a/src/lib/ecore_wl2/ecore_wl2_private.h 
b/src/lib/ecore_wl2/ecore_wl2_private.h
index 8c7c8d54f7..172daa8ac3 100644
--- a/src/lib/ecore_wl2/ecore_wl2_private.h
+++ b/src/lib/ecore_wl2/ecore_wl2_private.h
@@ -153,6 +153,7 @@ struct _Ecore_Wl2_Window
    int id, rotation, surface_id;
    const char *title;
    const char *class;
+   const char *role;
 
    struct wl_surface *surface;
    struct xdg_surface *xdg_surface;
diff --git a/src/lib/ecore_wl2/ecore_wl2_window.c 
b/src/lib/ecore_wl2/ecore_wl2_window.c
index 97db1a39a5..1a3b284465 100644
--- a/src/lib/ecore_wl2/ecore_wl2_window.c
+++ b/src/lib/ecore_wl2/ecore_wl2_window.c
@@ -666,6 +666,7 @@ ecore_wl2_window_free(Ecore_Wl2_Window *window)
 
    if (window->title) eina_stringshare_del(window->title);
    if (window->class) eina_stringshare_del(window->class);
+   if (window->role) eina_stringshare_del(window->role);
 
    display->windows =
      eina_inlist_remove(display->windows, EINA_INLIST_GET(window));
@@ -1469,3 +1470,10 @@ ecore_wl2_window_focus_skip_get(Ecore_Wl2_Window *window)
    EINA_SAFETY_ON_NULL_RETURN_VAL(window, EINA_FALSE);
    return window->focus_skip;
 }
+
+EAPI void
+ecore_wl2_window_role_set(Ecore_Wl2_Window *window, const char *role)
+{
+   EINA_SAFETY_ON_NULL_RETURN(window);
+   eina_stringshare_replace(&window->role, role);
+}

-- 


Reply via email to