ecore-wl2: Add event and structure for auxiliary hints
authorChris Michael <cp.michael@samsung.com>
Tue, 13 Jun 2017 16:01:30 +0000 (12:01 -0400)
committerChris Michael <cp.michael@samsung.com>
Tue, 13 Jun 2017 16:57:17 +0000 (12:57 -0400)
@feature

Signed-off-by: Chris Michael <cp.michael@samsung.com>
src/lib/ecore_wl2/Ecore_Wl2.h
src/lib/ecore_wl2/ecore_wl2.c
src/lib/ecore_wl2/ecore_wl2_private.h

index 0b9594c..03d6db5 100644 (file)
@@ -44,6 +44,7 @@ typedef struct _Ecore_Wl2_Pointer Ecore_Wl2_Pointer;
 typedef struct _Ecore_Wl2_Keyboard Ecore_Wl2_Keyboard;
 typedef struct _Ecore_Wl2_Touch Ecore_Wl2_Touch;
 typedef struct _Ecore_Wl2_Offer Ecore_Wl2_Offer;
+typedef struct _Ecore_Wl2_Aux_Hint Ecore_Wl2_Aux_Hint;
 
 /* matches protocol values */
 typedef enum
@@ -297,6 +298,12 @@ typedef enum _Ecore_Wl2_Window_Type
    ECORE_WL2_WINDOW_TYPE_LAST
 } Ecore_Wl2_Window_Type;
 
+typedef struct _Ecore_Wl2_Event_Aux_Hint_Allowed
+{
+   unsigned int win;
+   int id;
+} Ecore_Wl2_Event_Aux_Hint_Allowed;
+
 typedef void (*Ecore_Wl2_Bind_Cb)(struct wl_client *client, void *data, uint32_t version, uint32_t id);
 typedef void (*Ecore_Wl2_Unbind_Cb)(struct wl_resource *resource);
 
@@ -333,6 +340,7 @@ EAPI extern int ECORE_WL2_EVENT_WINDOW_ROTATION_CHANGE_PREPARE; /** @since 1.20
 EAPI extern int ECORE_WL2_EVENT_WINDOW_ROTATION_CHANGE_PREPARE_DONE; /** @since 1.20 */
 EAPI extern int ECORE_WL2_EVENT_WINDOW_ROTATION_CHANGE_REQUEST; /** @since 1.20 */
 EAPI extern int ECORE_WL2_EVENT_WINDOW_ROTATION_CHANGE_DONE; /** @since 1.20 */
+EAPI extern int ECORE_WL2_EVENT_AUX_HINT_ALLOWED; /** @since 1.20 */
 
 /**
  * @file
index d206618..c96ece5 100644 (file)
@@ -45,6 +45,7 @@ EAPI int ECORE_WL2_EVENT_WINDOW_ROTATION_CHANGE_PREPARE = 0;
 EAPI int ECORE_WL2_EVENT_WINDOW_ROTATION_CHANGE_PREPARE_DONE = 0;
 EAPI int ECORE_WL2_EVENT_WINDOW_ROTATION_CHANGE_REQUEST = 0;
 EAPI int ECORE_WL2_EVENT_WINDOW_ROTATION_CHANGE_DONE = 0;
+EAPI int ECORE_WL2_EVENT_AUX_HINT_ALLOWED = 0;
 
 EAPI int _ecore_wl2_event_window_www = -1;
 EAPI int _ecore_wl2_event_window_www_drag = -1;
@@ -120,6 +121,7 @@ ecore_wl2_init(void)
           ecore_event_type_new();
         ECORE_WL2_EVENT_WINDOW_ROTATION_CHANGE_REQUEST = ecore_event_type_new();
         ECORE_WL2_EVENT_WINDOW_ROTATION_CHANGE_DONE = ecore_event_type_new();
+        ECORE_WL2_EVENT_AUX_HINT_ALLOWED = ecore_event_type_new();
      }
    if (!no_session_recovery)
      no_session_recovery = !!getenv("EFL_NO_WAYLAND_SESSION_RECOVERY");
@@ -182,7 +184,8 @@ ecore_wl2_shutdown(void)
                           ECORE_WL2_EVENT_WINDOW_ROTATION_CHANGE_PREPARE,
                           ECORE_WL2_EVENT_WINDOW_ROTATION_CHANGE_PREPARE_DONE,
                           ECORE_WL2_EVENT_WINDOW_ROTATION_CHANGE_REQUEST,
-                          ECORE_WL2_EVENT_WINDOW_ROTATION_CHANGE_DONE);
+                          ECORE_WL2_EVENT_WINDOW_ROTATION_CHANGE_DONE,
+                          ECORE_WL2_EVENT_AUX_HINT_ALLOWED);
 
    /* shutdown Ecore_Event */
    ecore_event_shutdown();
index 611db67..3c296af 100644 (file)
@@ -133,6 +133,14 @@ struct _Ecore_Wl2_Subsurface
    Eina_Bool sync : 1;
 };
 
+struct _Ecore_Wl2_Aux_Hint
+{
+   EINA_INLIST;
+
+   int id;
+   const char *hint, *val;
+};
+
 struct _Ecore_Wl2_Window
 {
    EINA_INLIST;
@@ -168,6 +176,7 @@ struct _Ecore_Wl2_Window
    Ecore_Wl2_Window_Type type;
 
    Eina_Inlist *subsurfs;
+   Eina_Inlist *supported_aux_hints;
 
    Eina_Bool moving : 1;
    Eina_Bool minimized : 1;