aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris Michael <cp.michael@samsung.com>2017-06-13 12:01:30 -0400
committerChris Michael <cp.michael@samsung.com>2017-06-13 12:57:17 -0400
commit3e1ad4d45a02d9653bcb4b6d41ba6139b261ae73 (patch)
tree5e4e25126c67d99a332c69647537528f6663b7be
parentecore-evas-wayland: Add aux_hint functions to Wayland Interface (diff)
downloadefl-3e1ad4d45a02d9653bcb4b6d41ba6139b261ae73.tar.gz
ecore-wl2: Add event and structure for auxiliary hints
@feature Signed-off-by: Chris Michael <cp.michael@samsung.com>
-rw-r--r--src/lib/ecore_wl2/Ecore_Wl2.h8
-rw-r--r--src/lib/ecore_wl2/ecore_wl2.c5
-rw-r--r--src/lib/ecore_wl2/ecore_wl2_private.h9
3 files changed, 21 insertions, 1 deletions
diff --git a/src/lib/ecore_wl2/Ecore_Wl2.h b/src/lib/ecore_wl2/Ecore_Wl2.h
index 0b9594c867..03d6db5b34 100644
--- a/src/lib/ecore_wl2/Ecore_Wl2.h
+++ b/src/lib/ecore_wl2/Ecore_Wl2.h
@@ -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
diff --git a/src/lib/ecore_wl2/ecore_wl2.c b/src/lib/ecore_wl2/ecore_wl2.c
index d206618d37..c96ece51b2 100644
--- a/src/lib/ecore_wl2/ecore_wl2.c
+++ b/src/lib/ecore_wl2/ecore_wl2.c
@@ -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();
diff --git a/src/lib/ecore_wl2/ecore_wl2_private.h b/src/lib/ecore_wl2/ecore_wl2_private.h
index 611db67fdf..3c296afb55 100644
--- a/src/lib/ecore_wl2/ecore_wl2_private.h
+++ b/src/lib/ecore_wl2/ecore_wl2_private.h
@@ -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;