Ecore_Wl2: Add dox and rearrange API list. 60/226660/2
authorWoochanlee <wc0917.lee@samsung.com>
Wed, 4 Mar 2020 11:16:51 +0000 (20:16 +0900)
committerwoochan lee <wc0917.lee@samsung.com>
Thu, 5 Mar 2020 04:36:33 +0000 (04:36 +0000)
Change-Id: Ief34bd68508c03254ff527d171cf6e811d145548

src/lib/ecore_wl2/Ecore_Wl2.h
src/lib/ecore_wl2/ecore_wl2_display.c
src/lib/ecore_wl2/ecore_wl2_internal.h

index 9752889a7d82f19f545a56d726a243e35e6f8d08..77dad39113b23af8a18a7e5723f12cfd278577e6 100644 (file)
 extern "C" {
 # endif
 
-# ifdef EFL_BETA_API_SUPPORT
-
 #define ECORE_WL2_SURFACE_INTERFACE_VERSION 1
 
-typedef struct _Ecore_Wl2_Subsurface Ecore_Wl2_Subsurface;
+/**
+ * @file
+ * @brief Ecore functions for dealing with the Wayland display protocol
+ *
+ * @defgroup Ecore_Wl2_Group Ecore_Wl2 - Wayland integration
+ * @ingroup Ecore
+ *
+ * Ecore_Wl2 provides a wrapper and convenience functions for using the
+ * Wayland protocol in implementing a window system. Function groups for
+ * this part of the library include the following:
+ *
+ * @li @ref Ecore_Wl2_Init_Group
+ * @li @ref Ecore_Wl2_Display_Group
+ * @li @ref Ecore_Wl2_Window_Group
+ * @li @ref Ecore_Wl2_Input_Group
+ */
 
 #  ifndef _ECORE_WL2_WINDOW_PREDEF
+/**
+ * @ingroup Ecore_Wl2_Group
+ *
+ * @typedef Ecore_Wl2_Window
+ * Type for Ecore_Wl2_Window
+ */
 typedef struct _Ecore_Wl2_Window Ecore_Wl2_Window;
 #  endif
 
+/**
+ * @ingroup Ecore_Wl2_Group
+ *
+ * @typedef Ecore_Wl2_Display
+ * Type for Ecore_Wl2_Display
+ */
 typedef struct _Ecore_Wl2_Display Ecore_Wl2_Display;
-typedef struct _Ecore_Wl2_Output Ecore_Wl2_Output;
+
+/**
+ * @ingroup Ecore_Wl2_Group
+ *
+ * @typedef Ecore_Wl2_Input
+ * Type for Ecore_Wl2_Input
+ */
 typedef struct _Ecore_Wl2_Input Ecore_Wl2_Input;
+
+// TIZEN_ONLY(20190807): Support for wl_egl interface
+/**
+ * @ingroup Ecore_Wl2_Group
+ *
+ * @typedef Ecore_Wl2_Egl_Window
+ * Type for Ecore_Wl2_Egl_Window
+ */
+typedef struct _Ecore_Wl2_Egl_Window Ecore_Wl2_Egl_Window;
+//
+
+/** @internal */
+typedef struct _Ecore_Wl2_Subsurface Ecore_Wl2_Subsurface;
+/** @internal */
+typedef struct _Ecore_Wl2_Output Ecore_Wl2_Output;
+/** @internal */
 typedef struct _Ecore_Wl2_Seat Ecore_Wl2_Seat;
+/** @internal */
 typedef struct _Ecore_Wl2_Pointer Ecore_Wl2_Pointer;
+/** @internal */
 typedef struct _Ecore_Wl2_Keyboard Ecore_Wl2_Keyboard;
+/** @internal */
 typedef struct _Ecore_Wl2_Touch Ecore_Wl2_Touch;
+/** @internal */
 typedef struct _Ecore_Wl2_Offer Ecore_Wl2_Offer;
+/** @internal */
 typedef struct _Ecore_Wl2_Surface Ecore_Wl2_Surface;
 // TIZEN_ONLY(20171109): support a tizen_input_device_manager interface
+/** @internal */
 typedef struct _Ecore_Wl2_Tizen_Input_Eo_Device Ecore_Wl2_Tizen_Input_Eo_Device;
+/** @internal */
 typedef struct _Ecore_Wl2_Tizen_Input_Device Ecore_Wl2_Tizen_Input_Device;
+//
+
+/**
+ * @ingroup Ecore_Wl2_Group
+ *
+ * @typedef Ecore_Wl2_Event_Connect
+ * Type for Ecore_Wl2_Event_Connect
+ */
+typedef struct _Ecore_Wl2_Event_Connection Ecore_Wl2_Event_Connect;
+
+/**
+ * @ingroup Ecore_Wl2_Group
+ *
+ * @typedef Ecore_Wl2_Event_Disconnect
+ * Type for Ecore_Wl2_Event_Disconnect
+ */
+typedef struct _Ecore_Wl2_Event_Connection Ecore_Wl2_Event_Disconnect;
+
+struct _Ecore_Wl2_Event_Connection
+{
+   Ecore_Wl2_Display *display;
+};
+
+/**
+ * @ingroup Ecore_Wl2_Group
+ *
+ * @typedef Ecore_Wl2_Event_Global
+ * Type for _Ecore_Wl2_Event_Global
+ */
+typedef struct _Ecore_Wl2_Event_Global
+{
+   Ecore_Wl2_Display *display;
+   Eina_Stringshare *interface;
+   unsigned int id, version;
+} Ecore_Wl2_Event_Global;
 
+/**
+ * @ingroup Ecore_Wl2_Group
+ *
+ * @typedef Ecore_Wl2_Event_Window_Configure
+ * Type for Ecore_Wl2_Event_Window_Configure
+ */
+typedef struct _Ecore_Wl2_Event_Window_Configure
+{
+   unsigned int win, event_win, edges;
+// TIZEN_ONLY
+   int x, y;
 //
-// TIZEN_ONLY(20190807): Support for wl_egl interface
-typedef struct _Ecore_Wl2_Egl_Window Ecore_Wl2_Egl_Window;
+   unsigned int w, h;
+   unsigned int states;
+} Ecore_Wl2_Event_Window_Configure;
+
+/**
+ * @ingroup Ecore_Wl2_Group
+ *
+ * @typedef Ecore_Wl2_Event_Window_Configure_Complete
+ * Type for Ecore_Wl2_Event_Window_Configure_Complete
+ */
+typedef struct _Ecore_Wl2_Event_Window_Configure_Complete
+{
+   unsigned int win;
+} Ecore_Wl2_Event_Window_Configure_Complete;
+
+/*
+ * @ingroup Ecore_Wl2_Group
+ *
+ * @typedef Ecore_Wl2_Event_Window_Show
+ * Type for Ecore_Wl2_Event_Window_Show
+ */
+typedef struct _Ecore_Wl2_Event_Window_Show
+{
+   unsigned int win;
+   unsigned int parent_win;
+   unsigned int event_win;
+   // TIZEN_ONLY
+   unsigned int data[4];
+   //
+} Ecore_Wl2_Event_Window_Show;
+
+/*
+ * @ingroup Ecore_Wl2_Group
+ *
+ * @typedef Ecore_Wl2_Event_Window_Hide
+ * Type for Ecore_Wl2_Event_Window_Hide
+ */
+typedef struct _Ecore_Wl2_Event_Window_Hide
+{
+   unsigned int win;
+   unsigned int parent_win;
+   unsigned int event_win;
+} Ecore_Wl2_Event_Window_Hide;
+
+/*
+ * @ingroup Ecore_Wl2_Group
+ *
+ * @typedef Ecore_Wl2_Event_Window_Activate
+ * Type for Ecore_Wl2_Event_Window_Activate
+ */
+typedef struct _Ecore_Wl2_Event_Window_Activate
+{
+   unsigned int win;
+   unsigned int parent_win;
+   unsigned int event_win;
+} Ecore_Wl2_Event_Window_Activate;
+
+/*
+ * @ingroup Ecore_Wl2_Group
+ *
+ * @typedef Ecore_Wl2_Event_Window_Deactivate
+ * Type for Ecore_Wl2_Event_Window_Deactivate
+ */
+typedef struct _Ecore_Wl2_Event_Window_Deactivate
+{
+   unsigned int win;
+   unsigned int parent_win;
+   unsigned int event_win;
+} Ecore_Wl2_Event_Window_Deactivate;
+
+/*
+ * @ingroup Ecore_Wl2_Group
+ *
+ * @typedef Ecore_Wl2_Event_Window_Lower
+ * Type for Ecore_Wl2_Event_Window_Lower
+ */
+typedef struct _Ecore_Wl2_Event_Window_Lower
+{
+   unsigned int win;
+   unsigned int timestamp;
+} Ecore_Wl2_Event_Window_Lower;
+
+// TIZEN_ONLY(20171107): support a tizen_keyrouter interface
+//this enum for keyrouter and client window side
+//keycode (8~255)
+/*
+ * @ingroup Ecore_Wl2_Group
+ *
+ * @typedef Ecore_Wl2_Window_Keygrab_Mode
+ * Type for Ecore_Wl2_Window_Keygrab_Mode
+ */
+typedef enum _Ecore_Wl2_Window_Keygrab_Mode
+{
+   ECORE_WL2_WINDOW_KEYGRAB_UNKNOWN = 0, /**< Unknown keygrab mode */
+   ECORE_WL2_WINDOW_KEYGRAB_SHARED = 1, /**< Getting the grabbed-key together with the other client windows */
+   ECORE_WL2_WINDOW_KEYGRAB_TOPMOST = 2, /**< Getting the grabbed-key only when window is top of the stack */
+   ECORE_WL2_WINDOW_KEYGRAB_OVERRIDE_EXCLUSIVE = 3, /**< Getting the grabbed-key exclusively regardless of window's position. Being overrided the grab by the other client window  */
+   ECORE_WL2_WINDOW_KEYGRAB_EXCLUSIVE = 4 /**< Getting the grabbed-key exclusively regardless of window's position */
+} Ecore_Wl2_Window_Keygrab_Mode;
+
+/*
+ * @ingroup Ecore_Wl2_Group
+ *
+ * @typedef Ecore_Wl2_Window_Keygrab_Info
+ * Type for Ecore_Wl2_Window_Keygrab_Info
+ */
+typedef struct _Ecore_Wl2_Window_Keygrab_Info
+{
+   char *key;
+   Ecore_Wl2_Window_Keygrab_Mode mode;
+} Ecore_Wl2_Window_Keygrab_Info;
 //
 
+/*
+ * @ingroup Ecore_Wl2_Group
+ *
+ * @typedef Ecore_Wl2_Frame_Cb
+ * Type for Ecore_Wl2_Frame_Cb
+ */
+typedef void (*Ecore_Wl2_Frame_Cb)(Ecore_Wl2_Window *win, uint32_t timestamp, void *data);
+
+/*
+ * @ingroup Ecore_Wl2_Group
+ *
+ * @typedef Ecore_Wl2_Frame_Cb_Handle
+ * Type for Ecore_Wl2_Frame_Cb_Handle
+ */
+typedef struct _Ecore_Wl2_Frame_Cb_Handle Ecore_Wl2_Frame_Cb_Handle;
+
 /* matches protocol values */
+/** @internal */
 typedef enum
 {
    ECORE_WL2_DRAG_ACTION_NONE = 0,
@@ -66,6 +292,7 @@ typedef enum
    ECORE_WL2_DRAG_ACTION_LAST = 5,
 } Ecore_Wl2_Drag_Action;
 
+/** @internal */
 typedef enum
 {
   ECORE_WL2_SEAT_CAPABILITIES_NONE = 0,
@@ -74,14 +301,7 @@ typedef enum
   ECORE_WL2_SEAT_CAPABILITIES_TOUCH = 4
 } Ecore_Wl2_Seat_Capabilities;
 
-struct _Ecore_Wl2_Event_Connection
-{
-   Ecore_Wl2_Display *display;
-};
-
-typedef struct _Ecore_Wl2_Event_Connection Ecore_Wl2_Event_Connect;
-typedef struct _Ecore_Wl2_Event_Connection Ecore_Wl2_Event_Disconnect;
-
+/** @internal */
 typedef struct _Ecore_Wl2_Global
 {
    Eina_Stringshare *interface;
@@ -89,13 +309,7 @@ typedef struct _Ecore_Wl2_Global
    Ecore_Wl2_Display *display;
 } Ecore_Wl2_Global;
 
-typedef struct _Ecore_Wl2_Event_Global
-{
-   Ecore_Wl2_Display *display;
-   Eina_Stringshare *interface;
-   unsigned int id, version;
-} Ecore_Wl2_Event_Global;
-
+/** @internal */
 typedef struct _Ecore_Wl2_Event_Focus_In
 {
    unsigned int window;
@@ -104,6 +318,7 @@ typedef struct _Ecore_Wl2_Event_Focus_In
    Ecore_Wl2_Display *display;
 } Ecore_Wl2_Event_Focus_In;
 
+/** @internal */
 typedef struct _Ecore_Wl2_Event_Focus_Out
 {
    unsigned int window;
@@ -112,6 +327,7 @@ typedef struct _Ecore_Wl2_Event_Focus_Out
    Ecore_Wl2_Display *display;
 } Ecore_Wl2_Event_Focus_Out;
 
+/** @internal */
 typedef struct _Ecore_Wl2_Event_Dnd_Enter
 {
    unsigned int win, source;
@@ -121,6 +337,7 @@ typedef struct _Ecore_Wl2_Event_Dnd_Enter
    Ecore_Wl2_Display *display;
 } Ecore_Wl2_Event_Dnd_Enter;
 
+/** @internal */
 typedef struct _Ecore_Wl2_Event_Dnd_Leave
 {
    unsigned int win, source;
@@ -129,6 +346,7 @@ typedef struct _Ecore_Wl2_Event_Dnd_Leave
    Ecore_Wl2_Display *display;
 } Ecore_Wl2_Event_Dnd_Leave;
 
+/** @internal */
 typedef struct _Ecore_Wl2_Event_Dnd_Motion
 {
    unsigned int win, source;
@@ -138,6 +356,7 @@ typedef struct _Ecore_Wl2_Event_Dnd_Motion
    Ecore_Wl2_Display *display;
 } Ecore_Wl2_Event_Dnd_Motion;
 
+/** @internal */
 typedef struct _Ecore_Wl2_Event_Dnd_Drop
 {
    unsigned int win, source;
@@ -147,6 +366,7 @@ typedef struct _Ecore_Wl2_Event_Dnd_Drop
    Ecore_Wl2_Display *display;
 } Ecore_Wl2_Event_Dnd_Drop;
 
+/** @internal */
 typedef struct _Ecore_Wl2_Event_Dnd_End
 {
    unsigned int win, source;
@@ -154,6 +374,7 @@ typedef struct _Ecore_Wl2_Event_Dnd_End
    Ecore_Wl2_Display *display;
 } Ecore_Wl2_Event_Dnd_End;
 
+/** @internal */
 struct _Ecore_Wl2_Event_Data_Source_Event
 {
    unsigned int win, source;
@@ -163,6 +384,7 @@ struct _Ecore_Wl2_Event_Data_Source_Event
    Ecore_Wl2_Display *display;
 };
 
+/** @internal */
 typedef struct Ecore_Wl2_Event_Data_Source_End
 {
    unsigned int win, source;
@@ -172,9 +394,13 @@ typedef struct Ecore_Wl2_Event_Data_Source_End
    Ecore_Wl2_Display *display;
    Eina_Bool cancelled;
 } Ecore_Wl2_Event_Data_Source_End;
+
+/** @internal */
 typedef struct _Ecore_Wl2_Event_Data_Source_Event Ecore_Wl2_Event_Data_Source_Drop;
+/** @internal */
 typedef struct _Ecore_Wl2_Event_Data_Source_Event Ecore_Wl2_Event_Data_Source_Action;
 
+/** @internal */
 typedef struct _Ecore_Wl2_Event_Data_Source_Target
 {
    char *type;
@@ -182,6 +408,7 @@ typedef struct _Ecore_Wl2_Event_Data_Source_Target
    Ecore_Wl2_Display *display;
 } Ecore_Wl2_Event_Data_Source_Target;
 
+/** @internal */
 typedef struct _Ecore_Wl2_Event_Data_Source_Send
 {
    char *type;
@@ -191,6 +418,7 @@ typedef struct _Ecore_Wl2_Event_Data_Source_Send
    Ecore_Wl2_Display *display;
 } Ecore_Wl2_Event_Data_Source_Send;
 
+/** @internal */
 typedef struct Ecore_Wl2_Event_Seat_Selection
 {
    //TIZEN_ONLY(20180724): Supporting copy and paste for cbhm
@@ -201,6 +429,7 @@ typedef struct Ecore_Wl2_Event_Seat_Selection
    Ecore_Wl2_Display *display;
 } Ecore_Wl2_Event_Seat_Selection;
 
+/** @internal */
 typedef struct _Ecore_Wl2_Event_Seat_Name
 {
    Eina_Stringshare *name;
@@ -208,6 +437,7 @@ typedef struct _Ecore_Wl2_Event_Seat_Name
    Ecore_Wl2_Display *display;
 } Ecore_Wl2_Event_Seat_Name;
 
+/** @internal */
 typedef struct _Ecore_Wl2_Event_Seat_Capabilities
 {
    unsigned int id;
@@ -217,6 +447,7 @@ typedef struct _Ecore_Wl2_Event_Seat_Capabilities
    Ecore_Wl2_Display *display;
 } Ecore_Wl2_Event_Seat_Capabilities;
 
+/** @internal */
 typedef enum
 {
    ECORE_WL2_DEVICE_TYPE_SEAT,
@@ -225,6 +456,7 @@ typedef enum
    ECORE_WL2_DEVICE_TYPE_TOUCH
 } Ecore_Wl2_Device_Type;
 
+/** @internal */
 typedef struct _Ecore_Wl2_Event_Device
 {
    Eo *dev;
@@ -233,12 +465,14 @@ typedef struct _Ecore_Wl2_Event_Device
    Ecore_Wl2_Device_Type type;
 } Ecore_Wl2_Event_Device;
 
+/** @internal */
 typedef enum
 {
    ECORE_WL2_SELECTION_CNP,
    ECORE_WL2_SELECTION_DND
 } Ecore_Wl2_Selection_Type;
 
+/** @internal */
 typedef enum
 {
    ECORE_WL2_WINDOW_STATE_NONE = 0,
@@ -246,38 +480,27 @@ typedef enum
    ECORE_WL2_WINDOW_STATE_MAXIMIZED = (1 << 1),
 } Ecore_Wl2_Window_States;
 
-typedef struct _Ecore_Wl2_Event_Window_Configure
-{
-   unsigned int win, event_win, edges;
-// TIZEN_ONLY
-   int x, y;
-//
-   unsigned int w, h;
-   unsigned int states;
-} Ecore_Wl2_Event_Window_Configure;
-
-typedef struct _Ecore_Wl2_Event_Window_Configure_Complete
-{
-   unsigned int win;
-} Ecore_Wl2_Event_Window_Configure_Complete;
-
+/** @internal */
 typedef struct _Ecore_Wl2_Event_Input_Keymap_Changed
 {
    unsigned int id;
    Ecore_Wl2_Display *display;
 } Ecore_Wl2_Event_Seat_Keymap_Changed;
 
+/** @internal */
 typedef struct Ecore_Wl2_Event_Seat_Keyboard_Repeat_Changed
 {
    unsigned int id;
    Ecore_Wl2_Display *display;
 } Ecore_Wl2_Event_Seat_Keyboard_Repeat_Changed;
 
+/** @internal */
 typedef struct _Ecore_Wl2_Event_Sync_Done
 {
    Ecore_Wl2_Display *display;
 } Ecore_Wl2_Event_Sync_Done;
 
+/** @internal */
 typedef struct _Ecore_Wl2_Event_Offer_Data_Ready
 {
    Ecore_Wl2_Offer *offer;
@@ -288,12 +511,14 @@ typedef struct _Ecore_Wl2_Event_Offer_Data_Ready
    Ecore_Wl2_Display *display;
 } Ecore_Wl2_Event_Offer_Data_Ready;
 
+/** @internal */
 typedef struct _Ecore_Wl2_Event_Output_Transform
 {
    Ecore_Wl2_Output *output;
    int transform, old_transform;
 } Ecore_Wl2_Event_Output_Transform;
 
+/** @internal */
 typedef struct _Ecore_Wl2_Event_Window_Rotation
 {
    unsigned int win;
@@ -301,42 +526,16 @@ typedef struct _Ecore_Wl2_Event_Window_Rotation
    Eina_Bool resize : 1;
 } Ecore_Wl2_Event_Window_Rotation;
 
+/** @internal */
 typedef struct _Ecore_Wl2_Event_Window_Rotation Ecore_Wl2_Event_Window_Rotation_Change_Prepare;
+/** @internal */
 typedef struct _Ecore_Wl2_Event_Window_Rotation Ecore_Wl2_Event_Window_Rotation_Change_Prepare_Done;
+/** @internal */
 typedef struct _Ecore_Wl2_Event_Window_Rotation Ecore_Wl2_Event_Window_Rotation_Change_Request;
+/** @internal */
 typedef struct _Ecore_Wl2_Event_Window_Rotation Ecore_Wl2_Event_Window_Rotation_Change_Done;
 
-typedef struct _Ecore_Wl2_Event_Window_Show
-{
-   unsigned int win;
-   unsigned int parent_win;
-   unsigned int event_win;
-   // TIZEN_ONLY
-   unsigned int data[4];
-   //
-} Ecore_Wl2_Event_Window_Show;
-
-typedef struct _Ecore_Wl2_Event_Window_Hide
-{
-   unsigned int win;
-   unsigned int parent_win;
-   unsigned int event_win;
-} Ecore_Wl2_Event_Window_Hide;
-
-typedef struct _Ecore_Wl2_Event_Window_Activate
-{
-   unsigned int win;
-   unsigned int parent_win;
-   unsigned int event_win;
-} Ecore_Wl2_Event_Window_Activate;
-
-typedef struct _Ecore_Wl2_Event_Window_Deactivate
-{
-   unsigned int win;
-   unsigned int parent_win;
-   unsigned int event_win;
-} Ecore_Wl2_Event_Window_Deactivate;
-
+/** @internal */
 typedef struct _Ecore_Wl2_Event_Window_Iconify_State_Change
 {
    unsigned int win;
@@ -344,6 +543,7 @@ typedef struct _Ecore_Wl2_Event_Window_Iconify_State_Change
    unsigned int force;
 } Ecore_Wl2_Event_Window_Iconify_State_Change;
 
+/** @internal */
 typedef enum _Ecore_Wl2_Window_Type
 {
    ECORE_WL2_WINDOW_TYPE_NONE,
@@ -360,6 +560,7 @@ typedef enum _Ecore_Wl2_Window_Type
 } Ecore_Wl2_Window_Type;
 
 // TIZEN_ONLY(20171107): added wl enumerations from ecore_wayland to ecore_wl2
+/** @internal */
 typedef enum _Ecore_Wl2_Window_Visibility_Type
 {
    ECORE_WL2_WINDOW_VISIBILITY_TYPE_UNKNOWN = 0,
@@ -369,6 +570,7 @@ typedef enum _Ecore_Wl2_Window_Visibility_Type
    ECORE_WL2_WINDOW_VISIBILITY_TYPE_PRE_UNOBSCURED = 4,
 } Ecore_Wl2_Window_Visibility_Type;
 
+/** @internal */
 typedef enum _Ecore_Wl2_Window_Stack_Mode
 {
    ECORE_WL2_WINDOW_STACK_NONE  = 0,
@@ -376,6 +578,7 @@ typedef enum _Ecore_Wl2_Window_Stack_Mode
    ECORE_WL2_WINDOW_STACK_BELOW = 2,
 } Ecore_Wl2_Window_Stack_Mode;
 
+/** @internal */
 typedef enum _Ecore_Wl2_Conformant_Part_Type
 {
    ECORE_WL2_INDICATOR_PART = 0,
@@ -383,6 +586,7 @@ typedef enum _Ecore_Wl2_Conformant_Part_Type
    ECORE_WL2_CLIPBOARD_PART = 2
 } Ecore_Wl2_Conformant_Part_Type;
 
+/** @internal */
 typedef enum _Ecore_Wl2_Virtual_Keyboard_State
 {
    ECORE_WL2_VIRTUAL_KEYBOARD_STATE_UNKNOWN = 0,
@@ -390,6 +594,7 @@ typedef enum _Ecore_Wl2_Virtual_Keyboard_State
    ECORE_WL2_VIRTUAL_KEYBOARD_STATE_ON,
 } Ecore_Wl2_Virtual_Keyboard_State;
 
+/** @internal */
 typedef enum _Ecore_Wl2_Indicator_State
 {
    ECORE_WL2_INDICATOR_STATE_UNKNOWN = 0,
@@ -397,6 +602,7 @@ typedef enum _Ecore_Wl2_Indicator_State
    ECORE_WL2_INDICATOR_STATE_ON
 } Ecore_Wl2_Indicator_State;
 
+/** @internal */
 typedef enum _Ecore_Wl2_Indicator_Opacity_Mode
 {
    ECORE_WL2_INDICATOR_OPACITY_UNKNOWN = 0,
@@ -406,12 +612,14 @@ typedef enum _Ecore_Wl2_Indicator_Opacity_Mode
    ECORE_WL2_INDICATOR_BG_TRANSPARENT,
 } Ecore_Wl2_Indicator_Opacity_Mode;
 
+/** @internal */
 typedef enum _Ecore_Wl2_Indicator_Visible_Type
 {
    ECORE_WL2_INDICATOR_VISIBLE_TYPE_HIDDEN = 0,
    ECORE_WL2_INDICATOR_VISIBLE_TYPE_SHOWN,
 } Ecore_Wl2_Indicator_Visible_Type;
 
+/** @internal */
 typedef enum _Ecore_Wl2_Clipboard_State
 {
    ECORE_WL2_CLIPBOARD_STATE_UNKNOWN = 0,
@@ -420,6 +628,7 @@ typedef enum _Ecore_Wl2_Clipboard_State
 } Ecore_Wl2_Clipboard_State;
 //
 
+/** @internal */
 typedef struct _Ecore_Wl2_Event_Aux_Hint_Allowed
 {
    unsigned int win;
@@ -427,12 +636,14 @@ typedef struct _Ecore_Wl2_Event_Aux_Hint_Allowed
    Ecore_Wl2_Display *display;
 } Ecore_Wl2_Event_Aux_Hint_Allowed;
 
+/** @internal */
 typedef struct _Ecore_Wl2_Event_Aux_Hint_Supported
 {
    unsigned int win;
    Ecore_Wl2_Display *display;
 } Ecore_Wl2_Event_Aux_Hint_Supported;
 
+/** @internal */
 typedef struct Ecore_Wl2_Event_Aux_Message
 {
    unsigned int win;
@@ -442,13 +653,16 @@ typedef struct Ecore_Wl2_Event_Aux_Message
    Ecore_Wl2_Display *display;
 } Ecore_Wl2_Event_Aux_Message;
 
+/** @internal */
 typedef struct Ecore_Wl2_Event_Window_Offscreen
 {
    unsigned int win;
 } Ecore_Wl2_Event_Window_Offscreen;
 
+/** @internal */
 typedef struct _Ecore_Wl2_Buffer Ecore_Wl2_Buffer;
 
+/** @internal */
 typedef enum _Ecore_Wl2_Buffer_Type
 {
    ECORE_WL2_BUFFER_NONE = 0,
@@ -457,12 +671,14 @@ typedef enum _Ecore_Wl2_Buffer_Type
 } Ecore_Wl2_Buffer_Type;
 
 // TIZEN_ONLY(20171107): added wl evet structures from ecore_wayland to ecore_wl2
+/** @internal */
 typedef struct _Ecore_Wl2_Event_Window_Visibility_Change
 {
    unsigned int win;
    int          fully_obscured;
 } Ecore_Wl2_Event_Window_Visibility_Change;
 
+/** @internal */
 typedef struct _Ecore_Wl2_Event_Window_Pre_Visibility_Change
 {
    unsigned int win;
@@ -470,12 +686,7 @@ typedef struct _Ecore_Wl2_Event_Window_Pre_Visibility_Change
    unsigned int option;
 } Ecore_Wl2_Event_Window_Pre_Visibility_Change;
 
-typedef struct _Ecore_Wl2_Event_Window_Lower
-{
-   unsigned int win;
-   unsigned int timestamp;
-} Ecore_Wl2_Event_Window_Lower;
-
+/** @internal */
 typedef struct _Ecore_Wl2_Event_Dnd_Position
 {
    unsigned int win, source;
@@ -485,11 +696,13 @@ typedef struct _Ecore_Wl2_Event_Dnd_Position
      } position;
 } Ecore_Wl2_Event_Dnd_Position;
 
+/** @internal */
 typedef struct _Ecore_Wl2_Event_Data_Source_Cancelled
 {
    unsigned int win, source;
 } Ecore_Wl2_Event_Data_Source_Cancelled;
 
+/** @internal */
 typedef struct _Ecore_Wl2_Event_Selection_Data_Ready
 {
    char *data;
@@ -500,6 +713,7 @@ typedef struct _Ecore_Wl2_Event_Selection_Data_Ready
    Ecore_Wl2_Selection_Type sel_type;
 } Ecore_Wl2_Event_Selection_Data_Ready;
 
+/** @internal */
 typedef struct _Ecore_Wl2_Event_Conformant_Change
 {
    unsigned int win;
@@ -512,63 +726,68 @@ typedef struct _Ecore_Wl2_Event_Effect
    int win;
    unsigned int type;
 } Ecore_Wl2_Event_Effect;
+
+/** @internal */
 typedef struct _Ecore_Wl2_Event_Effect Ecore_Wl2_Event_Effect_Start;
+/** @internal */
 typedef struct _Ecore_Wl2_Event_Effect Ecore_Wl2_Event_Effect_End;
 
+/** @internal */
 typedef struct _Ecore_Wl2_Event_Ignore_Output_Transform
 {
    Ecore_Wl2_Window *win;
    Eina_Bool ignore;
 } Ecore_Wl2_Event_Ignore_Output_Transform;
 
+/** @internal */
 typedef struct _Ecore_Wl2_Event_Indicator_Flick
 {
    unsigned int win;
    int type;
 } Ecore_Wl2_Event_Indicator_Flick;
 
+/** @internal */
 typedef struct _Ecore_Wl2_Event_Clipboard_Data_Selected
 {
    unsigned int win;
 } Ecore_Wl2_Event_Clipboard_Data_Selected;
 //
 
-// TIZEN_ONLY(20171107): support a tizen_keyrouter interface
-//this enum for keyrouter and client window side
-//keycode (8~255)
-typedef enum _Ecore_Wl2_Window_Keygrab_Mode
-{
-   ECORE_WL2_WINDOW_KEYGRAB_UNKNOWN = 0, /**< Unknown keygrab mode */
-   ECORE_WL2_WINDOW_KEYGRAB_SHARED = 1, /**< Getting the grabbed-key together with the other client windows */
-   ECORE_WL2_WINDOW_KEYGRAB_TOPMOST = 2, /**< Getting the grabbed-key only when window is top of the stack */
-   ECORE_WL2_WINDOW_KEYGRAB_OVERRIDE_EXCLUSIVE = 3, /**< Getting the grabbed-key exclusively regardless of window's position. Being overrided the grab by the other client window  */
-   ECORE_WL2_WINDOW_KEYGRAB_EXCLUSIVE = 4 /**< Getting the grabbed-key exclusively regardless of window's position */
-} Ecore_Wl2_Window_Keygrab_Mode;
-
-typedef struct _Ecore_Wl2_Keygrab_Info
+/** @internal */
+typedef struct _Ecore_Wl2_Keygrab_Info
 {
    int key;
    int mode;
    int err;
 } Ecore_Wl2_Keygrab_Info;
 
+/** @internal */
 typedef struct _Ecore_Wl2_Keyungrab_Info
 {
    int key;
    int err;
 } Ecore_Wl2_Keyungrab_Info;
 
-typedef struct _Ecore_Wl2_Window_Keygrab_Info
+/** @internal */
+typedef struct _Ecore_Wl2_Surface_Interface
 {
-   char *key;
-   Ecore_Wl2_Window_Keygrab_Mode mode;
-} Ecore_Wl2_Window_Keygrab_Info;
-//
+   int id;
+   int version;
 
+   void *(*setup)(Ecore_Wl2_Window *win);
+   void (*destroy)(Ecore_Wl2_Surface *surface, void *priv_data);
+   void (*reconfigure)(Ecore_Wl2_Surface *surface, void *priv_data, int w, int h, uint32_t flags, Eina_Bool alpha);
+   void *(*data_get)(Ecore_Wl2_Surface *surface, void *priv_data, int *w, int *h);
+   int  (*assign)(Ecore_Wl2_Surface *surface, void *priv_data);
+   void (*post)(Ecore_Wl2_Surface *surface, void *priv_data, Eina_Rectangle *rects, unsigned int count);
+   void (*flush)(Ecore_Wl2_Surface *surface, void *priv_data, Eina_Bool purge);
+   void (*set_serial)(Ecore_Wl2_Surface *surface, void *priv_data, unsigned int serial);
+} Ecore_Wl2_Surface_Interface;
+
+/** @internal */
 typedef void (*Ecore_Wl2_Bind_Cb)(struct wl_client *client, void *data, uint32_t version, uint32_t id);
+/** @internal */
 typedef void (*Ecore_Wl2_Unbind_Cb)(struct wl_resource *resource);
-typedef void (*Ecore_Wl2_Frame_Cb)(Ecore_Wl2_Window *win, uint32_t timestamp, void *data);
-typedef struct _Ecore_Wl2_Frame_Cb_Handle Ecore_Wl2_Frame_Cb_Handle;
 
 EAPI extern int ECORE_WL2_EVENT_DISCONNECT; /** @since 1.18 */
 EAPI extern int ECORE_WL2_EVENT_CONNECT; /** @since 1.18 */
@@ -628,40 +847,6 @@ EAPI extern int ECORE_WL2_EVENT_INDICATOR_FLICK;
 EAPI extern int ECORE_WL2_EVENT_CLIPBOARD_DATA_SELECTED;
 //
 
-typedef struct _Ecore_Wl2_Surface_Interface
-{
-   int id;
-   int version;
-
-   void *(*setup)(Ecore_Wl2_Window *win);
-   void (*destroy)(Ecore_Wl2_Surface *surface, void *priv_data);
-   void (*reconfigure)(Ecore_Wl2_Surface *surface, void *priv_data, int w, int h, uint32_t flags, Eina_Bool alpha);
-   void *(*data_get)(Ecore_Wl2_Surface *surface, void *priv_data, int *w, int *h);
-   int  (*assign)(Ecore_Wl2_Surface *surface, void *priv_data);
-   void (*post)(Ecore_Wl2_Surface *surface, void *priv_data, Eina_Rectangle *rects, unsigned int count);
-   void (*flush)(Ecore_Wl2_Surface *surface, void *priv_data, Eina_Bool purge);
-   void (*set_serial)(Ecore_Wl2_Surface *surface, void *priv_data, unsigned int serial);
-} Ecore_Wl2_Surface_Interface;
-
-/**
- * @file
- * @brief Ecore functions for dealing with the Wayland display protocol
- *
- * @defgroup Ecore_Wl2_Group Ecore_Wl2 - Wayland integration
- * @ingroup Ecore
- *
- * Ecore_Wl2 provides a wrapper and convenience functions for using the
- * Wayland protocol in implementing a window system. Function groups for
- * this part of the library include the following:
- *
- * @li @ref Ecore_Wl2_Init_Group
- * @li @ref Ecore_Wl2_Display_Group
- * @li @ref Ecore_Wl2_Window_Group
- * @li @ref Ecore_Wl2_Output_Group
- * @li @ref Ecore_Wl2_Dnd_Group
- * @li @ref Ecore_Wl2_Input_Group
- */
-
 /**
  * @defgroup Ecore_Wl2_Init_Group Wayland Library Init and Shutdown Functions
  * @ingroup Ecore_Wl2_Group
@@ -681,7 +866,10 @@ typedef struct _Ecore_Wl2_Surface_Interface
 EAPI int ecore_wl2_init(void);
 
 /**
- * Shutdown the Ecore_Wl2 Library
+ * @brief Shutdown the Ecore_Wl2 Library
+ *
+ * In shutting down the library, the Wayland display connection is terminated
+ * and any event handlers for it are removed
  *
  * @return  The number of times the library has been initialized without
  *          being shutdown.
@@ -700,64 +888,155 @@ EAPI int ecore_wl2_shutdown(void);
  */
 
 /**
- * Create a new Wayland display
+ * @brief Connect to an existing Wayland display
  *
- * @brief This function is typically used to create a new display for
- * use with compositors, or to create a new display for use in nested
- * compositors.
+ * This function is typically used by clients to connect to an
+ * existing Wayland display.
  *
- * @param name The display target name to create. If @c NULL, a default
- *             display name will be assigned.
- * @return The newly created Ecore_Wl2_Display
+ * @param name The display target name to connect to. If @c NULL, the default
+ *             display is assumed.
+ *
+ * @return The Ecore_Wl2_Display which was connected to
  *
  * @ingroup Ecore_Wl2_Display_Group
  * @since 1.17
  */
-EAPI Ecore_Wl2_Display *ecore_wl2_display_create(const char *name);
+EAPI Ecore_Wl2_Display *ecore_wl2_display_connect(const char *name);
 
 /**
- * Destroy an existing Wayland display
+ * Disconnect an existing Wayland display
  *
- * @brief This function is typically used by servers to terminate an
+ * @brief This function is typically used by clients to disconnect from an
  * existing Wayland display.
  *
- * @param display The display to terminate
+ * @param display The display to disconnect from
  *
  * @ingroup Ecore_Wl2_Display_Group
  * @since 1.17
  */
-EAPI void ecore_wl2_display_destroy(Ecore_Wl2_Display *display);
+EAPI void ecore_wl2_display_disconnect(Ecore_Wl2_Display *display);
 
+// TIZEN_ONLY(20190807): Retrieve the existing native wayland display
 /**
- * Connect to an existing Wayland display
+ * Retrieve the existing native wayland display
  *
- * @brief This function is typically used by clients to connect to an
- * existing Wayland display.
+ * @note The native wl_display struct is not included in the managed API list
+ *       and is provided as a void pointer
+ *       if the user needs to call a specific module function using that struct
  *
- * @param name The display target name to connect to. If @c NULL, the default
- *             display is assumed.
+ * @param display The Ecore_Wl2_Display for which to retrieve the existing
+ *                Wayland display from
+ *
+ * @return The wl_display which this Ecore_Wl2_Display is using
+ *         It provided as void type
+ *
+ * @ingroup Ecore_Wl2_Display_Group
+ */
+EAPI void *ecore_wl2_display_native_get(Ecore_Wl2_Display *display);
+//
+
+/**
+ * Retrieves the size of the current screen.
+ *
+ * @param display The display to get the screen size of
+ * @param w where to return the width. May be NULL. Returns 0 on error.
+ * @param h where to return the height. May be NULL. Returns 0 on error.
+ *
+ * @ingroup Ecore_Wl2_Display_Group
+ * @since 1.17
+ */
+EAPI void ecore_wl2_display_screen_size_get(Ecore_Wl2_Display *display, int *w, int *h);
+
+/**
+ * Find an Ecore_Wl2_Window based on id
+ *
+ * @param display The display to search for the window
+ * @param id The id of the window to find
+ *
+ * @return The Ecore_Wl2_Window if found, or NULL if no such window exists
+ *
+ * @ingroup Ecore_Wl2_Display_Group
+ * @since 1.17
+ */
+EAPI Ecore_Wl2_Window *ecore_wl2_display_window_find(Ecore_Wl2_Display *display, unsigned int id);
+
+/**
+ * Gets the connected display object
+ *
+ * @brief This function is typically used by clients to get an
+ *        existing Wayland display.
+ *
+ * @param name The display target name. If @c NULL, the default
+ *        display is assumed.
  *
  * @return The Ecore_Wl2_Display which was connected to
  *
  * @ingroup Ecore_Wl2_Display_Group
+ * @since 1.24
+ */
+EAPI Ecore_Wl2_Display *ecore_wl2_connected_display_get(const char *name);
+
+/**
+ * Push buffered wayland protocol to compositor
+ *
+ * Wayland protocol is only actually sent when a flush occurs,
+ * so the display should be flushed at appropriate times, such
+ * as after a commit.
+ *
+ * @param display The display to flush
+ *
+ * @ingroup Ecore_Wl2_Display_Group
+ * @since 1.21
+ */
+EAPI void ecore_wl2_display_flush(Ecore_Wl2_Display *display);
+
+// TIZEN_ONLY(20171107): support a tizen_keyrouter interface
+/**
+ * This is wrapper for wl_display_sync.
+ *
+ * @param display The display to sync
+ *
+ * @ingroup Ecore_Wl2_Display_Group
+ */
+EAPI void ecore_wl2_display_sync(Ecore_Wl2_Display *display);
+//
+
+/**
+ * @internal
+ *
+ * Create a new Wayland display
+ *
+ * @brief This function is typically used to create a new display for
+ * use with compositors, or to create a new display for use in nested
+ * compositors.
+ *
+ * @param name The display target name to create. If @c NULL, a default
+ *             display name will be assigned.
+ * @return The newly created Ecore_Wl2_Display
+ *
+ * @ingroup Ecore_Wl2_Display_Group
  * @since 1.17
  */
-EAPI Ecore_Wl2_Display *ecore_wl2_display_connect(const char *name);
+EAPI Ecore_Wl2_Display *ecore_wl2_display_create(const char *name);
 
 /**
- * Disconnect an existing Wayland display
+ * @internal
  *
- * @brief This function is typically used by clients to disconnect from an
+ * Destroy an existing Wayland display
+ *
+ * @brief This function is typically used by servers to terminate an
  * existing Wayland display.
  *
- * @param display The display to disconnect from
+ * @param display The display to terminate
  *
  * @ingroup Ecore_Wl2_Display_Group
  * @since 1.17
  */
-EAPI void ecore_wl2_display_disconnect(Ecore_Wl2_Display *display);
+EAPI void ecore_wl2_display_destroy(Ecore_Wl2_Display *display);
 
 /**
+ * @internal
+ *
  * Terminate a Wayland display's main loop
  *
  * @brief This function is typically used by servers to terminate the
@@ -772,6 +1051,8 @@ EAPI void ecore_wl2_display_disconnect(Ecore_Wl2_Display *display);
 EAPI void ecore_wl2_display_terminate(Ecore_Wl2_Display *display);
 
 /**
+ * @internal
+ *
  * Retrieve the existing Wayland display
  *
  * @param display The Ecore_Wl2_Display for which to retrieve the existing
@@ -784,11 +1065,9 @@ EAPI void ecore_wl2_display_terminate(Ecore_Wl2_Display *display);
  */
 EAPI struct wl_display *ecore_wl2_display_get(Ecore_Wl2_Display *display);
 
-// TIZEN_ONLY(20190807): Retrieve the existing native wayland display
-EAPI void *ecore_wl2_native_display_get(Ecore_Wl2_Display *display);
-//
-
 /**
+ * @internal
+ *
  * Retrieve the wl_shm from a given Ecore_Wl2_Display
  *
  * @param display The Ecore_Wl2_Display for which to retrieve the existing
@@ -802,6 +1081,8 @@ EAPI void *ecore_wl2_native_display_get(Ecore_Wl2_Display *display);
 EAPI struct wl_shm *ecore_wl2_display_shm_get(Ecore_Wl2_Display *display);
 
 /**
+ * @internal
+ *
  * Retrieve the wl_dmabuf from a given Ecore_Wl2_Display
  *
  *
@@ -823,6 +1104,8 @@ EAPI struct wl_shm *ecore_wl2_display_shm_get(Ecore_Wl2_Display *display);
 EAPI void *ecore_wl2_display_dmabuf_get(Ecore_Wl2_Display *display);
 
 /**
+ * @internal
+ *
  * Return an Eina_Iterator that can be used to iterate through globals
  *
  * @param display The Ecore_Wl2_Display for which to return a global iterator
@@ -836,18 +1119,8 @@ EAPI void *ecore_wl2_display_dmabuf_get(Ecore_Wl2_Display *display);
 EAPI Eina_Iterator *ecore_wl2_display_globals_get(Ecore_Wl2_Display *display);
 
 /**
- * Retrieves the size of the current screen.
- *
- * @param display The display to get the screen size of
- * @param w where to return the width. May be NULL. Returns 0 on error.
- * @param h where to return the height. May be NULL. Returns 0 on error.
+ * @internal
  *
- * @ingroup Ecore_Wl2_Display_Group
- * @since 1.17
- */
-EAPI void ecore_wl2_display_screen_size_get(Ecore_Wl2_Display *display, int *w, int *h);
-
-/**
  * Get all the Ecore_Wl2_Input from the display.
  *
  * @param display The display
@@ -860,6 +1133,8 @@ EAPI void ecore_wl2_display_screen_size_get(Ecore_Wl2_Display *display, int *w,
 EAPI Eina_Iterator *ecore_wl2_display_inputs_get(Ecore_Wl2_Display *display);
 
 /**
+ * @internal
+ *
  * Find a seat for a given display object using the seat id
  *
  * @param display The display
@@ -873,6 +1148,8 @@ EAPI Eina_Iterator *ecore_wl2_display_inputs_get(Ecore_Wl2_Display *display);
 EAPI Ecore_Wl2_Input *ecore_wl2_display_input_find(const Ecore_Wl2_Display *display, unsigned int id);
 
 /**
+ * @internal
+ *
  * Find a seat for a given display object using the seat id
  *
  * @param display The display
@@ -886,19 +1163,8 @@ EAPI Ecore_Wl2_Input *ecore_wl2_display_input_find(const Ecore_Wl2_Display *disp
 EAPI Ecore_Wl2_Input *ecore_wl2_display_input_find_by_name(const Ecore_Wl2_Display *display, const char *name);
 
 /**
- * Find an Ecore_Wl2_Window based on id
- *
- * @param display The display to search for the window
- * @param id The id of the window to find
- *
- * @return The Ecore_Wl2_Window if found, or NULL if no such window exists
+ * @internal
  *
- * @ingroup Ecore_Wl2_Display_Group
- * @since 1.17
- */
-EAPI Ecore_Wl2_Window *ecore_wl2_display_window_find(Ecore_Wl2_Display *display, unsigned int id);
-
-/**
  * Retrieves the Wayland Registry used for the current Wayland display.
  *
  * @param display The display to get the registry of
@@ -911,6 +1177,8 @@ EAPI Ecore_Wl2_Window *ecore_wl2_display_window_find(Ecore_Wl2_Display *display,
 EAPI struct wl_registry *ecore_wl2_display_registry_get(Ecore_Wl2_Display *display);
 
 /**
+ * @internal
+ *
  * Check if the display has performed a sync
  *
  * @param display The display
@@ -924,6 +1192,8 @@ EAPI struct wl_registry *ecore_wl2_display_registry_get(Ecore_Wl2_Display *displ
 EAPI Eina_Bool ecore_wl2_display_sync_is_done(const Ecore_Wl2_Display *display);
 
 /**
+ * @internal
+ *
  * Get the name of the display object
  *
  * @param display The display
@@ -936,6 +1206,8 @@ EAPI Eina_Bool ecore_wl2_display_sync_is_done(const Ecore_Wl2_Display *display);
 EAPI const char *ecore_wl2_display_name_get(const Ecore_Wl2_Display *display);
 
 /**
+ * @internal
+ *
  * Finds an Ecore_Wl2_Window based on wl_surface
  *
  * @param display The display to search for the window
@@ -949,32 +1221,32 @@ EAPI const char *ecore_wl2_display_name_get(const Ecore_Wl2_Display *display);
 EAPI Ecore_Wl2_Window *ecore_wl2_display_window_find_by_surface(Ecore_Wl2_Display *display, struct wl_surface *surface);
 
 /**
- * Gets the connected display object
+ * @internal
  *
- * @brief This function is typically used by clients to get an
- *        existing Wayland display.
+ * Gets the wl_compositor which belongs to this display
  *
- * @param name The display target name. If @c NULL, the default
- *        display is assumed.
+ * @param display The Ecore_Wl2_Display to get the compositor of
  *
- * @return The Ecore_Wl2_Display which was connected to
+ * @return The wl_compositor associated with this display
  *
  * @ingroup Ecore_Wl2_Display_Group
  * @since 1.24
  */
-EAPI Ecore_Wl2_Display *ecore_wl2_connected_display_get(const char *name);
+EAPI struct wl_compositor *ecore_wl2_display_compositor_get(Ecore_Wl2_Display *display);
 
 /**
- * Gets the wl_compositor which belongs to this display
+ * @internal
  *
- * @param display The Ecore_Wl2_Display to get the compositor of
+ * Return the version of the display's compositor object
  *
- * @return The wl_compositor associated with this display
+ * @param disp the display to get the compositor object version from
+ *
+ * @return the version of the display's compositor object
  *
  * @ingroup Ecore_Wl2_Display_Group
- * @since 1.24
+ * @since 1.17
  */
-EAPI struct wl_compositor *ecore_wl2_display_compositor_get(Ecore_Wl2_Display *display);
+EAPI int ecore_wl2_display_compositor_version_get(Ecore_Wl2_Display *disp);
 
 /**
  * @defgroup Ecore_Wl2_Window_Group Wayland Library Window Functions
@@ -1012,86 +1284,435 @@ EAPI Ecore_Wl2_Window *ecore_wl2_window_new(Ecore_Wl2_Display *display, Ecore_Wl
 EAPI int ecore_wl2_window_id_get(Ecore_Wl2_Window *window);
 
 /**
- * Set a callback to be caleld just before the window is closed and freed
+ * Show a given Ecore_Wl2_Window
  *
- * @param window The window to listen to for a xdg toplevel close callback
- * @param cb The callback function to call being passed data and window
- * @param data The Data pointer to pass as data to the callback
+ * @param window The Ecore_Wl2_Window to show
  *
  * @ingroup Ecore_Wl2_Window_Group
- * @since 1.24
+ * @since 1.17
  */
-EAPI void ecore_wl2_window_close_callback_set(Ecore_Wl2_Window *window, void (*cb) (void *data, Ecore_Wl2_Window *win), void *data);
+EAPI void ecore_wl2_window_show(Ecore_Wl2_Window *window);
 
 /**
- * Get the wl_surface which belongs to this window
- *
- * @param window The Ecore_Wl2_Window to get the surface of
+ * Hide a given Ecore_Wl2_Window
  *
- * @return The wl_surface associated with this window.
+ * @param window The Ecore_Wl2_Window to hide
  *
  * @ingroup Ecore_Wl2_Window_Group
  * @since 1.17
  */
-EAPI struct wl_surface *ecore_wl2_window_surface_get(Ecore_Wl2_Window *window);
+EAPI void ecore_wl2_window_hide(Ecore_Wl2_Window *window);
 
 /**
- * Get the id of a given Ecore_Wl2_Window
+ * Free a given Ecore_Wl2_Window
  *
- * @param window The window to return the id of
+ * @param window The Ecore_Wl2_Window to free
  *
- * @return The id of the given window, or -1 on failure
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.17
+ */
+EAPI void ecore_wl2_window_free(Ecore_Wl2_Window *window);
+
+/**
+ * Raise a given Ecore_Wl2_Window
+ *
+ * @param window The Ecore_Wl2_Window which to raise
  *
  * @ingroup Ecore_Wl2_Window_Group
  * @since 1.17
  */
-EAPI int ecore_wl2_window_surface_id_get(Ecore_Wl2_Window *window);
+EAPI void ecore_wl2_window_raise(Ecore_Wl2_Window *window);
+
+// TIZEN_ONLY(20171108): tizen window function
+/**
+ * Lower the target window
+ *
+ * @note This API call causes the ECORE_WL2_EVENT_WINDOW_LOWER event
+ *
+ * @param window The target window
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ */
+EAPI void ecore_wl2_window_lower(Ecore_Wl2_Window *window);
 
 /**
- * @see evas_object_size_hint_aspect_set
+ * Activate the target window
+ *
+ * @param window The target window
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ */
+EAPI void ecore_wl2_window_activate(Ecore_Wl2_Window *window);
+//
+
+/**
+ * Attach a buffer to a window
+ *
+ * Note that the GL stack my attach buffers to a surface - we should call this
+ * function at that time (with a NULL buffer) to track whether a surface
+ * has a valid buffer.  That is, call with implicit true and buffer NULL at
+ * the time of glSwapBuffers.
+ *
+ * @param window The target window
+ * @param buffer The buffer to attach
+ * @param x X offset from corner
+ * @param y Y offset from corner
+ * @param implicit True if an external library is doing the actual attaching
+ *
  * @ingroup Ecore_Wl2_Window_Group
  * @since 1.21
  */
-EAPI void ecore_wl2_window_aspect_set(Ecore_Wl2_Window *window, int w, int h, unsigned int aspect);
+EAPI void ecore_wl2_window_buffer_attach(Ecore_Wl2_Window *win, void *buffer, int x, int y, Eina_Bool implicit);
 
 /**
- * @see evas_object_size_hint_aspect_get
+ * Specifies the area of the window's surface that needs updating
+ * internally calling wl_surface_damage
+ *
+ * @param window The target window
+ * @param rects The rect area that will cause damage
+ * @param count The number of rects
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ */
+EAPI void ecore_wl2_window_damage(Ecore_Wl2_Window *window, Eina_Rectangle *rects, unsigned int count);
+
+/**
+ * Get if a given window is alpha
+ *
+ * @param window The window to get if is alpha
+ *
+ * @return EINA_TRUE if window is alpha, EINA_FALSE otherwise
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.17
+ */
+EAPI Eina_Bool ecore_wl2_window_alpha_get(Ecore_Wl2_Window *window);
+
+/**
+ * Set a given window's alpha property
+ *
+ * @param window The window on which to set the alpha property
+ * @param alpha EINA_TRUE to set window as alpha, EINA_FALSE otherwise
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.17
+ */
+EAPI void ecore_wl2_window_alpha_set(Ecore_Wl2_Window *window, Eina_Bool alpha);
+
+/**
+ * Set the title of a given window
+ *
+ * @param window The window to set the title of
+ * @param title The title of the window
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.17
+ */
+EAPI void ecore_wl2_window_title_set(Ecore_Wl2_Window *window, const char *title);
+
+/**
+ * Get the title of a given window
+ *
+ * @param window The window to set the title of
+ *
+ * @return A string if found, or NULL otherwise
+ *
  * @ingroup Ecore_Wl2_Window_Group
  * @since 1.24
  */
-EAPI void ecore_wl2_window_aspect_get(Ecore_Wl2_Window *window, int *w, int *h, unsigned int *aspect);
+EAPI const char *ecore_wl2_window_title_get(Ecore_Wl2_Window *window);
 
 /**
- * Show a given Ecore_Wl2_Window
+ * Get which display a given window is using
  *
- * @param window The Ecore_Wl2_Window to show
+ * @param window The window to get the display of
+ *
+ * @return The Ecore_Wl2_Display that this window is using, or NULL otherwise
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.17
+ */
+EAPI Ecore_Wl2_Display *ecore_wl2_window_display_get(const Ecore_Wl2_Window *window);
+
+/**
+ * Set if this window should ignore focus requests
+ *
+ * @param window The window to set ignore focus requests on
+ * @param focus_skip EINA_TRUE if this window should skip focus requests, EINA_FALSE otherwise
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.20
+ */
+EAPI void ecore_wl2_window_focus_skip_set(Ecore_Wl2_Window *window, Eina_Bool focus_skip);
+
+/**
+ * Get if this window ignores focus requests
+ *
+ * @param window The window to get the focus skip value from
+ *
+ * @return EINA_TRUE if a window should skip focus requests, EINA_FALSE otherwise
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.20
+ */
+EAPI Eina_Bool ecore_wl2_window_focus_skip_get(Ecore_Wl2_Window *window);
+
+//TIZEN_ONLY: ecore_wl2: add ecore_wl_window_video_has
+/**
+ *
+ * Register the tizen protocol to provide video through the window's surface.
+ *
+ * @param window The target window
+ * @param has EINA_TRUE to set window has video, EINA_FALSE otherwise
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ */
+EAPI void ecore_wl2_window_video_has(Ecore_Wl2_Window *window, Eina_Bool has);
+//
+
+/**
+ * Commit the surface of a wayland window.
+ *
+ * If flush is set this generates a wl_surface_commit(), otherwise it is
+ * expected that some other call in the very near future (such as
+ * eglSwapBuffers) will cause an implicit flush.
+ *
+ * A surface that has been commit will be in the "pending" state until
+ * the compositor tells us it's time to draw again via a frame callback.
+ *
+ * @param window The window whose surface we want to commit
+ * @param flush EINA_TRUE if we need to flush immediately.
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.21
+ */
+EAPI void ecore_wl2_window_commit(Ecore_Wl2_Window *window, Eina_Bool flush);
+
+/**
+ * Add a callback that fires when the window's surface_frame callback fires
+ *
+ * @param window The window to add a callback on
+ * @param cb The callback
+ * @param data User data to provide to the callback handler
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.21
+ */
+EAPI Ecore_Wl2_Frame_Cb_Handle *ecore_wl2_window_frame_callback_add(Ecore_Wl2_Window *window, Ecore_Wl2_Frame_Cb cb, void *data);
+
+/**
+ * delete a callback that fires when the window's surface_frame callback fires
+ *
+ * @param window The window to add a callback on
+ * @param cb The callback handle
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.21
+ */
+EAPI void ecore_wl2_window_frame_callback_del(Ecore_Wl2_Frame_Cb_Handle *handle);
+
+// TIZEN_ONLY(20171107): support a tizen_keyrouter interface
+/**
+ * @brief Sets keygrab value of the window
+ *
+ * This function grabs the @c key of window using @c grab_mode
+ *
+ * @param win The target Ecore_Wl2_Window
+ * @param key The string is the keyname to grab
+ * @param mod A combination of modifier keys that must be present to
+ *              trigger the event. Not supported yet
+ * @param not_mod A combination of modifier keys that must not be
+ *                present to trigger the event. Not supported yet
+ * @param priority Not supported yet
+ * @param grab_mode Describes how the key should be grabbed, wrt. focus and
+ *                  stacking
+ *
+ * @return @c true on success, @c false otherwise
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ */
+EAPI Eina_Bool ecore_wl2_window_keygrab_set(Ecore_Wl2_Window *win, const char *key, int mod EINA_UNUSED, int not_mod EINA_UNUSED, int priority EINA_UNUSED, Ecore_Wl2_Window_Keygrab_Mode grab_mode);
+
+/**
+ * @brief Unsets keygrab value of the window
+ *
+ * This function unset keygrab value. Ungrab @c key of window.
+ *
+ * @param win The target Ecore_Wl2_Window
+ * @param key The string is the keyname to grab
+ * @param mod A combination of modifier keys that must be present to
+ *              trigger the event. Not supported yet
+ * @param not_mod A combination of modifier keys that must not be
+ *                present to trigger the event. Not supported yet
+ *
+ * @return @c true on success, @c false otherwise
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ */
+EAPI Eina_Bool ecore_wl2_window_keygrab_unset(Ecore_Wl2_Window *win, const char *key, int mod EINA_UNUSED, int any_mod EINA_UNUSED);
+
+/**
+ * @ingroup Ecore_Wl2_Window
+ * @brief Sets keygrab values of the window.
+ *
+ * The returned list should be freed with @c eina_list_free() when you no
+ * longer need it.
+ *
+ * @param win The window
+ * @param infos The list of keys and grab modes for setting keygrab
+ *
+ * @return NULL, or the list of keys being failed keygrab set.
+ *
+ * @Example
+ *
+ * Ecore_Wl2_Window_Keygrab_Info *info = malloc(sizeof(Ecore_Wl2_Window_Keygrab_Info));
+ * info->key = "XF86AudioLowerVolume";
+ * info->mode = ECORE_WL2_WINDOW_KEYGRAB_SHARED;
+ * infos = eina_list_append(infos, info);
+ *
+ * ecore_wl2_window_keygrab_list_set(win, infos);
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ */
+EAPI Eina_List *ecore_wl2_window_keygrab_list_set(Ecore_Wl2_Window *win, Eina_List *infos);
+
+/**
+ * @ingroup Ecore_Wl2_Window
+ * @brief Unsets keygrab values of the window.
+ *
+ * The returned list should be freed with @c eina_list_free() when you no
+ * longer need it.
+ *
+ * @param win The window
+ * @param infos The list of infos for unsetting keygrab
+ *
+ * @return NULL, or the list of keys being failed keygrab unset.
+ *
+ * @Example
+ *
+ * Ecore_Wl2_Window_Keygrab_Info *info = malloc(sizeof(Ecore_Wl2_Window_Keygrab_Info));
+ * info->key = "XF86AudioLowerVolume";
+ * infos = eina_list_append(infos, info);
+ *
+ * ecore_wl2_window_keygrab_list_unset(win, infos);
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ */
+EAPI Eina_List *ecore_wl2_window_keygrab_list_unset(Ecore_Wl2_Window *win, Eina_List *infos);
+//
+
+// TIZEN_ONLY(20190807): Support for wl_egl interface
+/**
+ * @brief Creates wl_egl_window
+ *
+ * Create wl_egl_window through the connected wl_surface of ecore_wl2_window.
+ *
+ * @param window The Ecore_Wl2_Window
+ * @param w The width of wl_egl_window
+ * @param h The height of wl_egl_window
+ *
+ * @return The newly created Ecore_Wl2_Egl_Window
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ */
+EAPI Ecore_Wl2_Egl_Window *ecore_wl2_egl_window_create(Ecore_Wl2_Window *window, int w, int h);
+/**
+ * Destroy a given Ecore_Wl2_Egl_Window
+ *
+ * @param egl_win The Ecore_Wl2_Egl_Window to destroy
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ */
+EAPI void                  ecore_wl2_egl_window_destroy(Ecore_Wl2_Egl_Window *egl_win);
+/**
+ * Cast the wl_egl_window struct pointer not included in the Managed API to void pointer
+ * This pointer can be used as an argument to the function passed to wl_egl_window.
+ *
+ * @param egl_win The Ecore_Wl2_Egl_Window
+ *
+ * @return The wl_egl_window, it provided as void type
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ */
+EAPI void                 *ecore_wl2_egl_window_native_get(Ecore_Wl2_Egl_Window *egl_win);
+/**
+ * Ecore_Wl2_Egl_Window resize with rotation
+ *
+ * @param egl_win The Ecore_Wl2_Egl_Window
+ * @param dx The x coord resize
+ * @param dy The y coord resize
+ * @param w The width of Ecore_Wl2_Egl_Window
+ * @param h The height of Ecore_Wl2_Egl_Window
+ * @param rotation The angle of rotation
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ */
+EAPI void                  ecore_wl2_egl_window_resize_with_rotation(Ecore_Wl2_Egl_Window *egl_win, int dx, int dy, int w, int h, int rotation);
+//
+
+/**
+ * @internal
+ *
+ * Set a callback to be caleld just before the window is closed and freed
+ *
+ * @param window The window to listen to for a xdg toplevel close callback
+ * @param cb The callback function to call being passed data and window
+ * @param data The Data pointer to pass as data to the callback
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.24
+ */
+EAPI void ecore_wl2_window_close_callback_set(Ecore_Wl2_Window *window, void (*cb) (void *data, Ecore_Wl2_Window *win), void *data);
+
+/**
+ * @internal
+ *
+ * Get the wl_surface which belongs to this window
+ *
+ * @param window The Ecore_Wl2_Window to get the surface of
+ *
+ * @return The wl_surface associated with this window.
  *
  * @ingroup Ecore_Wl2_Window_Group
  * @since 1.17
  */
-EAPI void ecore_wl2_window_show(Ecore_Wl2_Window *window);
+EAPI struct wl_surface *ecore_wl2_window_surface_get(Ecore_Wl2_Window *window);
 
 /**
- * Hide a given Ecore_Wl2_Window
+ * @internal
  *
- * @param window The Ecore_Wl2_Window to hide
+ * Get the id of a given Ecore_Wl2_Window
+ *
+ * @param window The window to return the id of
+ *
+ * @return The id of the given window, or -1 on failure
  *
  * @ingroup Ecore_Wl2_Window_Group
  * @since 1.17
  */
-EAPI void ecore_wl2_window_hide(Ecore_Wl2_Window *window);
+EAPI int ecore_wl2_window_surface_id_get(Ecore_Wl2_Window *window);
 
 /**
- * Free a given Ecore_Wl2_Window
+ * @internal
  *
- * @param window The Ecore_Wl2_Window to free
+ * @see evas_object_size_hint_aspect_set
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.21
+ */
+EAPI void ecore_wl2_window_aspect_set(Ecore_Wl2_Window *window, int w, int h, unsigned int aspect);
+
+/**
+ * @internal
  *
+ * @see evas_object_size_hint_aspect_get
  * @ingroup Ecore_Wl2_Window_Group
- * @since 1.17
+ * @since 1.24
  */
-EAPI void ecore_wl2_window_free(Ecore_Wl2_Window *window);
+EAPI void ecore_wl2_window_aspect_get(Ecore_Wl2_Window *window, int *w, int *h, unsigned int *aspect);
 
 /**
+ * @internal
+ *
  * @brief Begin moving a given Ecore_Wl2_Window
  *
  * @param window The Ecore_Wl2_Window which to move
@@ -1103,6 +1724,8 @@ EAPI void ecore_wl2_window_free(Ecore_Wl2_Window *window);
 EAPI void ecore_wl2_window_move(Ecore_Wl2_Window *window, Ecore_Wl2_Input *input);
 
 /**
+ * @internal
+ *
  * @brief Begin resizing a given window
  *
  * @param window The Ecore_Wl2_Window which to resize
@@ -1114,53 +1737,25 @@ EAPI void ecore_wl2_window_move(Ecore_Wl2_Window *window, Ecore_Wl2_Input *input
  */
 EAPI void ecore_wl2_window_resize(Ecore_Wl2_Window *window, Ecore_Wl2_Input *input, int location);
 
-/**
- * Raise a given Ecore_Wl2_Window
- *
- * @param window The Ecore_Wl2_Window which to raise
- *
- * @ingroup Ecore_Wl2_Window_Group
- * @since 1.17
- */
-EAPI void ecore_wl2_window_raise(Ecore_Wl2_Window *window);
-
 // TIZEN_ONLY(20171108): tizen window function
-EAPI void ecore_wl2_window_lower(Ecore_Wl2_Window *window);
-EAPI void ecore_wl2_window_activate(Ecore_Wl2_Window *window);
+/** @internal */
 EAPI void ecore_wl2_window_parent_set(Ecore_Wl2_Window *window, Ecore_Wl2_Window *parent);
+/** @internal */
 EAPI void ecore_wl2_window_stack_mode_set(Ecore_Wl2_Window *window, Ecore_Wl2_Window_Stack_Mode mode);
+/** @internal */
 EAPI void ecore_wl2_window_position_set(Ecore_Wl2_Window *window, int x, int y);
+/** @internal */
 EAPI int ecore_wl2_window_active_angle_get(Ecore_Wl2_Window *window);
 //
 
 //TIZEN_ONLY(20171216): add ecore_wl2_window_find
+/** @internal */
 EAPI Ecore_Wl2_Window *ecore_wl2_window_find(unsigned int id);
 //
 
 /**
- * Get if a given window is alpha
- *
- * @param window The window to get if is alpha
- *
- * @return EINA_TRUE if window is alpha, EINA_FALSE otherwise
- *
- * @ingroup Ecore_Wl2_Window_Group
- * @since 1.17
- */
-EAPI Eina_Bool ecore_wl2_window_alpha_get(Ecore_Wl2_Window *window);
-
-/**
- * Set a given window's alpha property
- *
- * @param window The window on which to set the alpha property
- * @param alpha EINA_TRUE to set window as alpha, EINA_FALSE otherwise
+ * @internal
  *
- * @ingroup Ecore_Wl2_Window_Group
- * @since 1.17
- */
-EAPI void ecore_wl2_window_alpha_set(Ecore_Wl2_Window *window, Eina_Bool alpha);
-
-/**
  * Set a given window's transparent property
  *
  * @param window The window on which to set the transparent property
@@ -1173,10 +1768,13 @@ EAPI void ecore_wl2_window_alpha_set(Ecore_Wl2_Window *window, Eina_Bool alpha);
 EAPI void ecore_wl2_window_transparent_set(Ecore_Wl2_Window *window, Eina_Bool transparent);
 
 // TIZEN_ONLY(20171108) : Get a window's transparent property
+/** @internal */
 EAPI Eina_Bool ecore_wl2_window_transparent_get(Ecore_Wl2_Window *window);
 //
 
 /**
+ * @internal
+ *
  * Set the opaque region of the Ecore_Wl2_Window
  *
  * @param win The window
@@ -1191,12 +1789,17 @@ EAPI Eina_Bool ecore_wl2_window_transparent_get(Ecore_Wl2_Window *window);
 EAPI void ecore_wl2_window_opaque_region_set(Ecore_Wl2_Window *window, int x, int y, int w, int h);
 
 // TIZEN_ONLY(20160201) : support to handle input rectangle
+/** @internal */
 EAPI void ecore_wl2_window_input_rect_set(Ecore_Wl2_Window *win, Eina_Rectangle *input_rect);
+/** @internal */
 EAPI void ecore_wl2_window_input_rect_add(Ecore_Wl2_Window *win, Eina_Rectangle *input_rect);
+/** @internal */
 EAPI void ecore_wl2_window_input_rect_subtract(Ecore_Wl2_Window *win, Eina_Rectangle *input_rect);
 //
 
 /**
+ * @internal
+ *
  * Get the opaque region of the Ecore_Wl2_Window
  *
  * @param win The window
@@ -1211,6 +1814,8 @@ EAPI void ecore_wl2_window_input_rect_subtract(Ecore_Wl2_Window *win, Eina_Recta
 EAPI void ecore_wl2_window_opaque_region_get(Ecore_Wl2_Window *window, int *x, int *y, int *w, int *h);
 
 /**
+ * @internal
+ *
  * Set the input region of the Ecore_Wl2_Window.
  *
  * To set an empty region, pass width and height as 0.
@@ -1229,6 +1834,8 @@ EAPI void ecore_wl2_window_opaque_region_get(Ecore_Wl2_Window *window, int *x, i
 EAPI void ecore_wl2_window_input_region_set(Ecore_Wl2_Window *window, int x, int y, int w, int h);
 
 /**
+ * @internal
+ *
  * Get the input region of the Ecore_Wl2_Window.
  *
  * @param window The window to set the input region of
@@ -1243,6 +1850,8 @@ EAPI void ecore_wl2_window_input_region_set(Ecore_Wl2_Window *window, int x, int
 EAPI void ecore_wl2_window_input_region_get(Ecore_Wl2_Window *window, int *x, int *y, int *w, int *h);
 
 /**
+ * @internal
+ *
  * Get if a given window is maximized
  *
  * @param window The window to get the maximized state of
@@ -1255,6 +1864,8 @@ EAPI void ecore_wl2_window_input_region_get(Ecore_Wl2_Window *window, int *x, in
 EAPI Eina_Bool ecore_wl2_window_maximized_get(Ecore_Wl2_Window *window);
 
 /**
+ * @internal
+ *
  * Set the maximized state of a given window
  *
  * @param window The window to set the maximized state of
@@ -1266,6 +1877,8 @@ EAPI Eina_Bool ecore_wl2_window_maximized_get(Ecore_Wl2_Window *window);
 EAPI void ecore_wl2_window_maximized_set(Ecore_Wl2_Window *window, Eina_Bool maximized);
 
 /**
+ * @internal
+ *
  * Get if a given window is fullscreen
  *
  * @param window The window to get the fullscreen state of
@@ -1278,6 +1891,8 @@ EAPI void ecore_wl2_window_maximized_set(Ecore_Wl2_Window *window, Eina_Bool max
 EAPI Eina_Bool ecore_wl2_window_fullscreen_get(Ecore_Wl2_Window *window);
 
 /**
+ * @internal
+ *
  * Set the fullscreen state of a given window
  *
  * @param window The window to set the fullscreen state of
@@ -1289,6 +1904,8 @@ EAPI Eina_Bool ecore_wl2_window_fullscreen_get(Ecore_Wl2_Window *window);
 EAPI void ecore_wl2_window_fullscreen_set(Ecore_Wl2_Window *window, Eina_Bool fullscreen);
 
 /**
+ * @internal
+ *
  * Get if a given window is rotated
  *
  * @param window The window to get the rotation of
@@ -1301,6 +1918,8 @@ EAPI void ecore_wl2_window_fullscreen_set(Ecore_Wl2_Window *window, Eina_Bool fu
 EAPI int ecore_wl2_window_rotation_get(Ecore_Wl2_Window *window);
 
 /**
+ * @internal
+ *
  * Set the rotation of a given window
  *
  * @param window The window to set the rotation of
@@ -1312,29 +1931,8 @@ EAPI int ecore_wl2_window_rotation_get(Ecore_Wl2_Window *window);
 EAPI void ecore_wl2_window_rotation_set(Ecore_Wl2_Window *window, int rotation);
 
 /**
- * Set the title of a given window
- *
- * @param window The window to set the title of
- * @param title The title of the window
- *
- * @ingroup Ecore_Wl2_Window_Group
- * @since 1.17
- */
-EAPI void ecore_wl2_window_title_set(Ecore_Wl2_Window *window, const char *title);
-
-/**
- * Get the title of a given window
- *
- * @param window The window to set the title of
- *
- * @return A string if found, or NULL otherwise
+ * @internal
  *
- * @ingroup Ecore_Wl2_Window_Group
- * @since 1.24
- */
-EAPI const char *ecore_wl2_window_title_get(Ecore_Wl2_Window *window);
-
-/**
  * Set the class of a given window
  *
  * @param window The window to set the class of
@@ -1345,8 +1943,9 @@ EAPI const char *ecore_wl2_window_title_get(Ecore_Wl2_Window *window);
  */
 EAPI void ecore_wl2_window_class_set(Ecore_Wl2_Window *window, const char *clas);
 
-
 /**
+ * @internal
+ *
  * Get the class of a given window
  *
  * @param window The window to set the class of
@@ -1359,6 +1958,8 @@ EAPI void ecore_wl2_window_class_set(Ecore_Wl2_Window *window, const char *clas)
 EAPI const char *ecore_wl2_window_class_get(Ecore_Wl2_Window *window);
 
 /**
+ * @internal
+ *
  * Get the geometry of a given window
  *
  * @brief The window geometry returned here is the window geometry as
@@ -1377,6 +1978,8 @@ EAPI const char *ecore_wl2_window_class_get(Ecore_Wl2_Window *window);
 EAPI void ecore_wl2_window_geometry_get(Ecore_Wl2_Window *window, int *x, int *y, int *w, int *h);
 
 /**
+ * @internal
+ *
  * Set the geometry of a given window
  *
  * @brief The window geometry referenced here is the window geometry as
@@ -1395,6 +1998,8 @@ EAPI void ecore_wl2_window_geometry_get(Ecore_Wl2_Window *window, int *x, int *y
 EAPI void ecore_wl2_window_geometry_set(Ecore_Wl2_Window *window, int x, int y, int w, int h);
 
 /**
+ * @internal
+ *
  * Get the iconified state of a given window
  *
  * @param window The window to get the iconified state of
@@ -1407,6 +2012,8 @@ EAPI void ecore_wl2_window_geometry_set(Ecore_Wl2_Window *window, int x, int y,
 EAPI Eina_Bool ecore_wl2_window_iconified_get(Ecore_Wl2_Window *window);
 
 /**
+ * @internal
+ *
  * Iconify a window
  *
  * @param win The window to iconifiy
@@ -1418,10 +2025,13 @@ EAPI Eina_Bool ecore_wl2_window_iconified_get(Ecore_Wl2_Window *window);
 EAPI void ecore_wl2_window_iconified_set(Ecore_Wl2_Window *window, Eina_Bool iconified);
 
 // TIZEN_ONLY(20151231) : handling iconic state on tizen
+/** @internal */
 EAPI void ecore_wl2_window_iconify_state_update(Ecore_Wl2_Window *window, Eina_Bool iconified, Eina_Bool send_event);
 //
 
 /**
+ * @internal
+ *
  * Set the type of a given window
  *
  * @param window The window to set the type of
@@ -1433,6 +2043,8 @@ EAPI void ecore_wl2_window_iconify_state_update(Ecore_Wl2_Window *window, Eina_B
 EAPI void ecore_wl2_window_type_set(Ecore_Wl2_Window *window, Ecore_Wl2_Window_Type type);
 
 /**
+ * @internal
+ *
  * Get the type of a given window
  *
  * @see Ecore_Wl2_Window_Type
@@ -1443,6 +2055,8 @@ EAPI void ecore_wl2_window_type_set(Ecore_Wl2_Window *window, Ecore_Wl2_Window_T
 EAPI Ecore_Wl2_Window_Type ecore_wl2_window_type_get(Ecore_Wl2_Window *window);
 
 /**
+ * @internal
+ *
  * Find the output that a given window is on
  *
  * @param window The window to find the output for
@@ -1455,6 +2069,8 @@ EAPI Ecore_Wl2_Window_Type ecore_wl2_window_type_get(Ecore_Wl2_Window *window);
 EAPI Ecore_Wl2_Output *ecore_wl2_window_output_find(Ecore_Wl2_Window *window);
 
 /**
+ * @internal
+ *
  * Set if window rotation is supported by the window manager
  *
  * @param window
@@ -1466,6 +2082,8 @@ EAPI Ecore_Wl2_Output *ecore_wl2_window_output_find(Ecore_Wl2_Window *window);
 EAPI void ecore_wl2_window_wm_rotation_supported_set(Ecore_Wl2_Window *window, Eina_Bool enabled);
 
 /**
+ * @internal
+ *
  * Get if window rotation is supported by the window manager
  *
  * @param window
@@ -1478,6 +2096,8 @@ EAPI void ecore_wl2_window_wm_rotation_supported_set(Ecore_Wl2_Window *window, E
 EAPI Eina_Bool ecore_wl2_window_wm_rotation_supported_get(Ecore_Wl2_Window *window);
 
 /**
+ * @internal
+ *
  * Set if an application has set window rotation
  *
  * @param window
@@ -1489,6 +2109,8 @@ EAPI Eina_Bool ecore_wl2_window_wm_rotation_supported_get(Ecore_Wl2_Window *wind
 EAPI void ecore_wl2_window_rotation_app_set(Ecore_Wl2_Window *window, Eina_Bool set);
 
 /**
+ * @internal
+ *
  * Get if an application has set window rotation
  *
  * @param window
@@ -1501,6 +2123,8 @@ EAPI void ecore_wl2_window_rotation_app_set(Ecore_Wl2_Window *window, Eina_Bool
 EAPI Eina_Bool ecore_wl2_window_rotation_app_get(Ecore_Wl2_Window *window);
 
 /**
+ * @internal
+ *
  * Set preferred rotation on a given window
  *
  * @param window The window to set preferred rotation on
@@ -1512,6 +2136,8 @@ EAPI Eina_Bool ecore_wl2_window_rotation_app_get(Ecore_Wl2_Window *window);
 EAPI void ecore_wl2_window_preferred_rotation_set(Ecore_Wl2_Window *window, int rot);
 
 /**
+ * @internal
+ *
  * Get preferred rotation for a given window
  *
  * @param window The window to get preferred rotation from
@@ -1524,6 +2150,8 @@ EAPI void ecore_wl2_window_preferred_rotation_set(Ecore_Wl2_Window *window, int
 EAPI int ecore_wl2_window_preferred_rotation_get(Ecore_Wl2_Window *window);
 
 /**
+ * @internal
+ *
  * Set a windows available rotations
  *
  * @param window
@@ -1536,6 +2164,8 @@ EAPI int ecore_wl2_window_preferred_rotation_get(Ecore_Wl2_Window *window);
 EAPI void ecore_wl2_window_available_rotations_set(Ecore_Wl2_Window *window, const int *rots, unsigned int count);
 
 /**
+ * @internal
+ *
  * Get a windows available rotations
  *
  * @param window
@@ -1548,18 +2178,24 @@ EAPI void ecore_wl2_window_available_rotations_set(Ecore_Wl2_Window *window, con
  * @since 1.20
  */
 EAPI Eina_Bool ecore_wl2_window_available_rotations_get(Ecore_Wl2_Window *window, int **rots, unsigned int *count);
-
+/** @internal */
 EAPI void ecore_wl2_window_rotation_change_prepare_send(Ecore_Wl2_Window *window, int rot, int w, int h, Eina_Bool resize);
+/** @internal */
 EAPI void ecore_wl2_window_rotation_change_prepare_done_send(Ecore_Wl2_Window *window, int rot);
+/** @internal */
 EAPI void ecore_wl2_window_rotation_change_request_send(Ecore_Wl2_Window *window, int rot);
+/** @internal */
 EAPI void ecore_wl2_window_rotation_change_done_send(Ecore_Wl2_Window *window, int rot, int w, int h);
-
 // TIZEN_ONLY
+/** @internal */
 EAPI void ecore_wl2_window_rotation_geometry_set(Ecore_Wl2_Window *win, int rot, int x, int y, int w, int h);
+/** @internal */
 EAPI void ecore_wl2_window_rotation_changed_callback_set(Ecore_Wl2_Window *win, void *data, void (*func)(Ecore_Wl2_Window *win, int rot, Eina_Bool resize, int w, int h, void *data));
 //
 
 /**
+ * @internal
+ *
  * Get list of supported auxiliary window hints
  *
  * @param window
@@ -1572,6 +2208,8 @@ EAPI void ecore_wl2_window_rotation_changed_callback_set(Ecore_Wl2_Window *win,
 EAPI Eina_List *ecore_wl2_window_aux_hints_supported_get(Ecore_Wl2_Window *window);
 
 /**
+ * @internal
+ *
  * Add a supported auxiliary hint to a given window
  *
  * @param window
@@ -1585,6 +2223,8 @@ EAPI Eina_List *ecore_wl2_window_aux_hints_supported_get(Ecore_Wl2_Window *windo
 EAPI void ecore_wl2_window_aux_hint_add(Ecore_Wl2_Window *window, int id, const char *hint, const char *val);
 
 /**
+ * @internal
+ *
  * Change an auxiliary hint on a given window
  *
  * @param window
@@ -1597,6 +2237,8 @@ EAPI void ecore_wl2_window_aux_hint_add(Ecore_Wl2_Window *window, int id, const
 EAPI void ecore_wl2_window_aux_hint_change(Ecore_Wl2_Window *window, int id, const char *val);
 
 /**
+ * @internal
+ *
  * Delete an auxiliary hint on a given window
  *
  * @param window
@@ -1608,6 +2250,8 @@ EAPI void ecore_wl2_window_aux_hint_change(Ecore_Wl2_Window *window, int id, con
 EAPI void ecore_wl2_window_aux_hint_del(Ecore_Wl2_Window *window, int id);
 
 /**
+ * @internal
+ *
  * @brief Get the activated state of a window
  *
  * @param window The window to get activated state from
@@ -1620,6 +2264,8 @@ EAPI void ecore_wl2_window_aux_hint_del(Ecore_Wl2_Window *window, int id);
 EAPI Eina_Bool ecore_wl2_window_activated_get(const Ecore_Wl2_Window *window);
 
 /**
+ * @internal
+ *
  * @brief Set the seat for a popup window to be used with grab
  *
  * @param window The window
@@ -1634,6 +2280,8 @@ EAPI Eina_Bool ecore_wl2_window_activated_get(const Ecore_Wl2_Window *window);
 EAPI void ecore_wl2_window_popup_input_set(Ecore_Wl2_Window *window, Ecore_Wl2_Input *input);
 
 /**
+ * @internal
+ *
  * @brief Get the seat for a popup window to be used with grab
  *
  * @param window The window
@@ -1646,6 +2294,8 @@ EAPI void ecore_wl2_window_popup_input_set(Ecore_Wl2_Window *window, Ecore_Wl2_I
 EAPI Ecore_Wl2_Input *ecore_wl2_window_popup_input_get(Ecore_Wl2_Window *window);
 
 /**
+ * @internal
+ *
  * Check if a window has a shell surface - without one it can't be visible.
  *
  * @param The window to check
@@ -1658,113 +2308,236 @@ EAPI Ecore_Wl2_Input *ecore_wl2_window_popup_input_get(Ecore_Wl2_Window *window)
 EAPI Eina_Bool ecore_wl2_window_shell_surface_exists(Ecore_Wl2_Window *win);
 
 // TIZEN_ONLY(171108) : get shell surface of a given window
+/** @internal */
 EAPI struct zxdg_surface_v6 *ecore_wl2_window_shell_surface_get(Ecore_Wl2_Window *window);
 //
 
 /**
- * Get which display a given window is using
+ * @internal
  *
- * @param window The window to get the display of
+ * Set the role of a given window
  *
- * @return The Ecore_Wl2_Display that this window is using, or NULL otherwise
+ * @param window
+ * @param role
  *
  * @ingroup Ecore_Wl2_Window_Group
- * @since 1.17
+ * @since 1.20
  */
-EAPI Ecore_Wl2_Display *ecore_wl2_window_display_get(const Ecore_Wl2_Window *window);
+EAPI void ecore_wl2_window_role_set(Ecore_Wl2_Window *window, const char *role);
 
 /**
- * Set if this window should ignore focus requests
+ * @internal
  *
- * @param window The window to set ignore focus requests on
- * @param focus_skip EINA_TRUE if this window should skip focus requests, EINA_FALSE otherwise
+ * Get the role of a given window
+ *
+ * @param window The window to set the class role
+ *
+ * @return A string if found, or NULL otherwise
  *
  * @ingroup Ecore_Wl2_Window_Group
- * @since 1.20
+ * @since 1.24
  */
-EAPI void ecore_wl2_window_focus_skip_set(Ecore_Wl2_Window *window, Eina_Bool focus_skip);
+EAPI const char *ecore_wl2_window_role_get(Ecore_Wl2_Window *window);
 
 /**
- * Get if this window ignores focus requests
+ * @internal
  *
- * @param window The window to get the focus skip value from
+ * Set if a given window is in floating mode
  *
- * @return EINA_TRUE if a window should skip focus requests, EINA_FALSE otherwise
+ * @param window The window to set floating mode on
+ * @param floating EINA_TRUE if this window should be in floating mode, EINA_FALSE otherwise
  *
  * @ingroup Ecore_Wl2_Window_Group
  * @since 1.20
  */
-EAPI Eina_Bool ecore_wl2_window_focus_skip_get(Ecore_Wl2_Window *window);
+EAPI void ecore_wl2_window_floating_mode_set(Ecore_Wl2_Window *window, Eina_Bool floating);
 
 /**
- * Set the role of a given window
+ * @internal
  *
- * @param window
- * @param role
+ * Get if a given window is in floating mode
+ *
+ * @param window The window to get floating mode
+ *
+ * @return EINA_TRUE if floating, EINA_FALSE otherwise
  *
  * @ingroup Ecore_Wl2_Window_Group
  * @since 1.20
  */
-EAPI void ecore_wl2_window_role_set(Ecore_Wl2_Window *window, const char *role);
+EAPI Eina_Bool ecore_wl2_window_floating_mode_get(Ecore_Wl2_Window *window);
 
 /**
- * Get the role of a given window
+ * @internal
  *
- * @param window The window to set the class role
+ * Finds a window by surface
  *
- * @return A string if found, or NULL otherwise
+ * @param surface The surface to find the window of
  *
  * @ingroup Ecore_Wl2_Window_Group
  * @since 1.24
  */
-EAPI const char *ecore_wl2_window_role_get(Ecore_Wl2_Window *window);
+EAPI Ecore_Wl2_Window *ecore_wl2_window_surface_find(struct wl_surface *surface);
+
+/*
+ * @internal
+ *
+ * Check if a wayland window's surface is in the pending state.
+ *
+ * A surface is pending if it's been commit but we haven't received a
+ * frame callback for it yet.  This mean's we're not ready to draw yet.
+ *
+ * @param window The window whose surface we want to check
+ *
+ * @return whether the window's surface is pending or not.
+ *
+ * @since 1.21
+ */
+EAPI Eina_Bool ecore_wl2_window_pending_get(Ecore_Wl2_Window *window);
 
 /**
- * Set if a given window is in floating mode
+ * @internal
  *
- * @param window The window to set floating mode on
- * @param floating EINA_TRUE if this window should be in floating mode, EINA_FALSE otherwise
+ * Get if a given window is resizing
+ *
+ * @param window The window to check for resizing
+ *
+ * @return EINA_TRUE if resizing, EINA_FALSE otherwise
  *
  * @ingroup Ecore_Wl2_Window_Group
- * @since 1.20
+ * @since 1.21
  */
-EAPI void ecore_wl2_window_floating_mode_set(Ecore_Wl2_Window *window, Eina_Bool floating);
+EAPI Eina_Bool ecore_wl2_window_resizing_get(Ecore_Wl2_Window *window);
+
+/**
+ * @internal
+ *
+ * Latch window state at the start of an update
+ *
+ * When async render takes place we continue to dispatch wayland
+ * events from the main loop. We need to defer any changes to
+ * window state from those events until the update is complete.
+ *
+ * Events deferred during an update will automatically fire
+ * immediately after the caller calls ecore_wl2_window_commit.
+ *
+ * @param window The window whose state we want to latch
+ *
+ * @since 1.21
+ */
+EAPI void ecore_wl2_window_update_begin(Ecore_Wl2_Window *window);
+
+// TIZEN_ONLY(20171207): add functions to set client's custom cursors
+/** @internal */
+EAPI void ecore_wl2_window_pointer_set(Ecore_Wl2_Window *win, struct wl_surface *surface, int hot_x, int hot_y);
+/** @internal */
+EAPI void ecore_wl2_window_cursor_from_name_set(Ecore_Wl2_Window *win, const char *cursor_name);
+/** @internal */
+EAPI void ecore_wl2_window_cursor_default_restore(Ecore_Wl2_Window *win);
+//
+// TIZEN_ONLY(20150703) : support conformant
+/** @internal */
+EAPI void ecore_wl2_window_conformant_set(Ecore_Wl2_Window *win, unsigned int is_conformant);
+/** @internal */
+EAPI Eina_Bool ecore_wl2_window_conformant_get(Ecore_Wl2_Window *win);
+//
+
+// TIZEN_ONLY(20171108) : add functions for indicator
+/** @internal */
+EAPI void ecore_wl2_window_indicator_geometry_set(Ecore_Wl2_Window *win, int x, int y, int w, int h);
+/** @internal */
+EAPI Eina_Bool ecore_wl2_window_indicator_geometry_get(Ecore_Wl2_Window *win, int *x, int *y, int *w, int *h);
+/** @internal */
+EAPI void ecore_wl2_window_indicator_state_set(Ecore_Wl2_Window *win, Ecore_Wl2_Indicator_State state);
+/** @internal */
+EAPI Ecore_Wl2_Indicator_State ecore_wl2_window_indicator_state_get(Ecore_Wl2_Window *win);
+/** @internal */
+EAPI void ecore_wl2_window_indicator_opacity_set(Ecore_Wl2_Window *win, Ecore_Wl2_Indicator_Opacity_Mode mode);
+/** @internal */
+EAPI Ecore_Wl2_Indicator_Opacity_Mode ecore_wl2_window_indicator_opacity_get(Ecore_Wl2_Window *win);
+/** @internal */
+EAPI void ecore_wl2_indicator_visible_type_set(Ecore_Wl2_Window *win, Ecore_Wl2_Indicator_Visible_Type type);
+/** @internal */
+EAPI Ecore_Wl2_Indicator_Visible_Type ecore_wl2_indicator_visible_type_get(Ecore_Wl2_Window *win);
+//
+
+// TIZEN_ONLY(20171108) : add functions for clipboard
+/** @internal */
+EAPI void ecore_wl2_window_clipboard_geometry_set(Ecore_Wl2_Window *win, int x, int y, int w, int h);
+/** @internal */
+EAPI Eina_Bool ecore_wl2_window_clipboard_geometry_get(Ecore_Wl2_Window *win, int *x, int *y, int *w, int *h);
+/** @internal */
+EAPI void ecore_wl2_window_clipboard_state_set(Ecore_Wl2_Window *win, Ecore_Wl2_Clipboard_State state);
+/** @internal */
+EAPI Ecore_Wl2_Clipboard_State ecore_wl2_window_clipboard_state_get(Ecore_Wl2_Window *win);
+/** @internal */
+EAPI void ecore_wl2_clipboard_show(Ecore_Wl2_Window *win);
+/** @internal */
+EAPI void ecore_wl2_clipboard_hide(Ecore_Wl2_Window *win);
+/** @internal */
+EAPI Eina_Bool ecore_wl2_clipboard_data_only_set(Eina_Bool data_only);
+//
+
+// TIZEN_ONLY(20171108) : add functions for keyboard
+/** @internal */
+EAPI void ecore_wl2_window_keyboard_geometry_set(Ecore_Wl2_Window *win, int x, int y, int w, int h);
+/** @internal */
+EAPI Eina_Bool ecore_wl2_window_keyboard_geometry_get(Ecore_Wl2_Window *win, int *x, int *y, int *w, int *h);
+/** @internal */
+EAPI void ecore_wl2_window_keyboard_state_set(Ecore_Wl2_Window *win, Ecore_Wl2_Virtual_Keyboard_State state);
+/** @internal */
+EAPI Ecore_Wl2_Virtual_Keyboard_State ecore_wl2_window_keyboard_state_get(Ecore_Wl2_Window *win);
+//
+// TIZEN_ONLY(20171107): add ecore_wl2_window_input_get() EAPI
+/** @internal */
+EAPI Ecore_Wl2_Input *ecore_wl2_window_input_get(Ecore_Wl2_Window *win);
+//
+// TIZEN_ONLY(20171114): support a pointer warp
+/** @internal */
+EAPI Eina_Bool ecore_wl2_window_pointer_warp(Ecore_Wl2_Window *win, int x, int y);
+//
+//TIZEN_ONLY(20171115): support output transform
+/** @internal */
+EAPI Eina_Bool ecore_wl2_window_ignore_output_transform_get(Ecore_Wl2_Window *win);
+//
+//TIZEN_ONLY(20180810): support client demand move resize
+/** @internal */
+EAPI void ecore_wl2_window_sync_geometry_set(Ecore_Wl2_Window *window, uint32_t serial, int x, int y, int w, int h);
+//
 
 /**
- * Get if a given window is in floating mode
- *
- * @param window The window to get floating mode
- *
- * @return EINA_TRUE if floating, EINA_FALSE otherwise
+ * @defgroup Ecore_Wl2_Input_Group Wayland Library Input Functions
+ * @ingroup Ecore_Wl2_Group
  *
- * @ingroup Ecore_Wl2_Window_Group
- * @since 1.20
+ * Functions that deal with creating, destroying, or interacting with
+ * Wayland Input
  */
-EAPI Eina_Bool ecore_wl2_window_floating_mode_get(Ecore_Wl2_Window *window);
-
-//TIZEN_ONLY: ecore_wl2: add ecore_wl_window_video_has
-EAPI void ecore_wl2_window_video_has(Ecore_Wl2_Window *window, Eina_Bool has);
-//
 
 /**
- * Finds a window by surface
+ * Gets default input of a given display
  *
- * @param surface The surface to find the window of
+ * @param display The display
  *
- * @ingroup Ecore_Wl2_Window_Group
+ * @ingroup Ecore_Wl2_Input_Group
  * @since 1.24
  */
-EAPI Ecore_Wl2_Window *ecore_wl2_window_surface_find(struct wl_surface *surface);
+EAPI Ecore_Wl2_Input *ecore_wl2_input_default_input_get(const Ecore_Wl2_Display *ewd);
 
 /**
- * @defgroup Ecore_Wl2_Input_Group Wayland Library Input Functions
- * @ingroup Ecore_Wl2_Group
+ * Retrieves the mouse position of the seat
  *
- * Functions that deal with creating, destroying, or interacting with
- * Wayland Input
+ * @param input The seat
+ * @param x where to return the horizontal position. May be NULL. Returns 0 on error.
+ * @param y where to return the vertical position. May be NULL. Returns 0 on error.
+ * @return @c EINA_TRUE if coords were successfully retrieved
+ *
+ * @ingroup Ecore_Wl2_Input_Group
+ * @since 1.20
  */
+EAPI Eina_Bool ecore_wl2_input_pointer_xy_get(const Ecore_Wl2_Input *input, int *x, int *y);
 
 /**
+ * @internal
+ *
  * Get the wl_seat that an input is using
  *
  * @param input The Ecore_Wl2_Input to get the seat of
@@ -1777,6 +2550,8 @@ EAPI Ecore_Wl2_Window *ecore_wl2_window_surface_find(struct wl_surface *surface)
 EAPI struct wl_seat *ecore_wl2_input_seat_get(Ecore_Wl2_Input *input);
 
 /**
+ * @internal
+ *
  * Get the seat capabilities for a given input.
  *
  * @param input The input
@@ -1787,6 +2562,8 @@ EAPI struct wl_seat *ecore_wl2_input_seat_get(Ecore_Wl2_Input *input);
 EAPI Ecore_Wl2_Seat_Capabilities ecore_wl2_input_seat_capabilities_get(Ecore_Wl2_Input *input);
 
 /**
+ * @internal
+ *
  * Get the wayland's seat id from an input.
  *
  * @param input The input
@@ -1799,6 +2576,8 @@ EAPI Ecore_Wl2_Seat_Capabilities ecore_wl2_input_seat_capabilities_get(Ecore_Wl2
 EAPI unsigned int ecore_wl2_input_seat_id_get(Ecore_Wl2_Input *input) EINA_WARN_UNUSED_RESULT;
 
 /**
+ * @internal
+ *
  * Get the display object of an input
  *
  * @param input The input
@@ -1811,6 +2590,8 @@ EAPI unsigned int ecore_wl2_input_seat_id_get(Ecore_Wl2_Input *input) EINA_WARN_
 EAPI Ecore_Wl2_Display *ecore_wl2_input_display_get(const Ecore_Wl2_Input *input);
 
 /**
+ * @internal
+ *
  * Get the xkb_keymap object of an input
  *
  * @param input The input
@@ -1823,6 +2604,8 @@ EAPI Ecore_Wl2_Display *ecore_wl2_input_display_get(const Ecore_Wl2_Input *input
 EAPI struct xkb_keymap *ecore_wl2_input_keymap_get(const Ecore_Wl2_Input *input);
 
 /**
+ * @internal
+ *
  * Get the name of an input
  *
  * @param input The input
@@ -1835,6 +2618,8 @@ EAPI struct xkb_keymap *ecore_wl2_input_keymap_get(const Ecore_Wl2_Input *input)
 EAPI Eina_Stringshare *ecore_wl2_input_name_get(Ecore_Wl2_Input *input);
 
 /**
+ * @internal
+ *
  * Get the keyboard repeat rate and delay of an input
  *
  * @param input The input
@@ -1849,6 +2634,8 @@ EAPI Eina_Stringshare *ecore_wl2_input_name_get(Ecore_Wl2_Input *input);
 EAPI Eina_Bool ecore_wl2_input_keyboard_repeat_get(const Ecore_Wl2_Input *input, double *rate, double *delay);
 
 /**
+ * @internal
+ *
  * Set the keyboard repeat rate and delay of an input
  * @param input The input
  * @param rate Pointer to store the repeat rate (in seconds)
@@ -1860,19 +2647,8 @@ EAPI Eina_Bool ecore_wl2_input_keyboard_repeat_get(const Ecore_Wl2_Input *input,
 EAPI Eina_Bool ecore_wl2_input_keyboard_repeat_set(Ecore_Wl2_Input *input, double rate, double delay);
 
 /**
- * Retrieves the mouse position of the seat
- *
- * @param input The seat
- * @param x where to return the horizontal position. May be NULL. Returns 0 on error.
- * @param y where to return the vertical position. May be NULL. Returns 0 on error.
- * @return @c EINA_TRUE if coords were successfully retrieved
+ * @internal
  *
- * @ingroup Ecore_Wl2_Input_Group
- * @since 1.20
- */
-EAPI Eina_Bool ecore_wl2_input_pointer_xy_get(const Ecore_Wl2_Input *input, int *x, int *y);
-
-/**
  * Set a given wl_surface to use as the pointer on a seat
  *
  * @param input The seat to set this surface as the pointer on
@@ -1886,7 +2662,9 @@ EAPI Eina_Bool ecore_wl2_input_pointer_xy_get(const Ecore_Wl2_Input *input, int
 EAPI void ecore_wl2_input_pointer_set(Ecore_Wl2_Input *input, struct wl_surface *surface, int hot_x, int hot_y);
 
 /**
- * Set a specific cursor on a given seat
+ * @internal
+ *
+ * Set a specific cursor on a given input
  *
  * @brief This function will try to find a matching cursor inside the existing
  * cursor theme and set the pointer for the specified seat to be
@@ -1901,18 +2679,18 @@ EAPI void ecore_wl2_input_pointer_set(Ecore_Wl2_Input *input, struct wl_surface
 EAPI void ecore_wl2_input_cursor_from_name_set(Ecore_Wl2_Input *input, const char *cursor);
 
 // TIZEN_ONLY(20171207): add functions to set client's custom cursors
+/** @internal */
 EAPI void ecore_wl2_input_pointer_set(Ecore_Wl2_Input *input, struct wl_surface *surface, int hot_x, int hot_y);
+/** @internal */
 EAPI struct wl_cursor *ecore_wl2_input_cursor_get(Ecore_Wl2_Input *input, const char *cursor_name);
+/** @internal */
 EAPI void ecore_wl2_input_cursor_size_set(Ecore_Wl2_Input *input, const int size);
+/** @internal */
 EAPI void ecore_wl2_input_cursor_theme_name_set(Ecore_Wl2_Input *input, const char *cursor_theme_name);
+/** @internal */
 EAPI void ecore_wl2_input_cursor_default_restore(Ecore_Wl2_Input *input);
-
-EAPI void ecore_wl2_window_pointer_set(Ecore_Wl2_Window *win, struct wl_surface *surface, int hot_x, int hot_y);
-EAPI void ecore_wl2_window_cursor_from_name_set(Ecore_Wl2_Window *win, const char *cursor_name);
-EAPI void ecore_wl2_window_cursor_default_restore(Ecore_Wl2_Window *win);
 //
 
-
 /**
  * @defgroup Ecore_Wl2_Dnd_Group Wayland Library Drag-n-Drop Functions
  * @ingroup Ecore_Wl2_Group
@@ -1922,6 +2700,8 @@ EAPI void ecore_wl2_window_cursor_default_restore(Ecore_Wl2_Window *win);
  */
 
 /**
+ * @internal
+ *
  * Set the types which are supported by a possible drag and drop operation.
  * This call initializes a data source and offeres the given mimetypes
  *
@@ -1934,6 +2714,8 @@ EAPI void ecore_wl2_window_cursor_default_restore(Ecore_Wl2_Window *win);
 EAPI void ecore_wl2_dnd_drag_types_set(Ecore_Wl2_Input *input, const char **types);
 
 /**
+ * @internal
+ *
  * Start a drag on the given input
  *
  * @param input the input to use
@@ -1948,6 +2730,8 @@ EAPI void ecore_wl2_dnd_drag_types_set(Ecore_Wl2_Input *input, const char **type
 EAPI uint32_t ecore_wl2_dnd_drag_start(Ecore_Wl2_Input *input, Ecore_Wl2_Window *window, Ecore_Wl2_Window *drag_window);
 
 /**
+ * @internal
+ *
  * Call wl_data_source.set_actions on an existing source
  *
  * @param input the input to use
@@ -1960,6 +2744,8 @@ EAPI uint32_t ecore_wl2_dnd_drag_start(Ecore_Wl2_Input *input, Ecore_Wl2_Window
 EAPI void ecore_wl2_dnd_set_actions(Ecore_Wl2_Input *input);
 
 /**
+ * @internal
+ *
  * End a drag started by a call to ecore_wl2_dnd_drag_start
  *
  * @param input the input object on which the drag was started
@@ -1970,6 +2756,8 @@ EAPI void ecore_wl2_dnd_set_actions(Ecore_Wl2_Input *input);
 EAPI void ecore_wl2_dnd_drag_end(Ecore_Wl2_Input *input);
 
 /**
+ * @internal
+ *
  * Get the offer which is currently resposible for the clipboard
  *
  * @param input the input object to use
@@ -1980,6 +2768,8 @@ EAPI void ecore_wl2_dnd_drag_end(Ecore_Wl2_Input *input);
 EAPI Ecore_Wl2_Offer* ecore_wl2_dnd_selection_get(Ecore_Wl2_Input *input);
 
 /**
+ * @internal
+ *
  * Set the types which are available from this client
  * Later the event ECORE_WL2_EVENT_DATA_SOURCE_SEND is emitted,
  * where the caller of this api must write the data (encoded in the given mimetype) to the fd
@@ -1995,6 +2785,8 @@ EAPI Ecore_Wl2_Offer* ecore_wl2_dnd_selection_get(Ecore_Wl2_Input *input);
 EAPI uint32_t ecore_wl2_dnd_selection_set(Ecore_Wl2_Input *input, const char **types);
 
 /**
+ * @internal
+ *
  * Clear the selection currently setted on this input.
  *
  * @param input the input to clear
@@ -2006,49 +2798,6 @@ EAPI uint32_t ecore_wl2_dnd_selection_set(Ecore_Wl2_Input *input, const char **t
  */
 EAPI uint32_t ecore_wl2_dnd_selection_clear(Ecore_Wl2_Input *input);
 
-// TIZEN_ONLY(20150703) : support conformant
-EAPI void ecore_wl2_window_conformant_set(Ecore_Wl2_Window *win, unsigned int is_conformant);
-EAPI Eina_Bool ecore_wl2_window_conformant_get(Ecore_Wl2_Window *win);
-//
-
-// TIZEN_ONLY(20171108) : add functions for indicator
-EAPI void ecore_wl2_window_indicator_geometry_set(Ecore_Wl2_Window *win, int x, int y, int w, int h);
-EAPI Eina_Bool ecore_wl2_window_indicator_geometry_get(Ecore_Wl2_Window *win, int *x, int *y, int *w, int *h);
-EAPI void ecore_wl2_window_indicator_state_set(Ecore_Wl2_Window *win, Ecore_Wl2_Indicator_State state);
-EAPI Ecore_Wl2_Indicator_State ecore_wl2_window_indicator_state_get(Ecore_Wl2_Window *win);
-EAPI void ecore_wl2_window_indicator_opacity_set(Ecore_Wl2_Window *win, Ecore_Wl2_Indicator_Opacity_Mode mode);
-EAPI Ecore_Wl2_Indicator_Opacity_Mode ecore_wl2_window_indicator_opacity_get(Ecore_Wl2_Window *win);
-EAPI void ecore_wl2_indicator_visible_type_set(Ecore_Wl2_Window *win, Ecore_Wl2_Indicator_Visible_Type type);
-EAPI Ecore_Wl2_Indicator_Visible_Type ecore_wl2_indicator_visible_type_get(Ecore_Wl2_Window *win);
-//
-
-// TIZEN_ONLY(20171108) : add functions for clipboard
-EAPI void ecore_wl2_window_clipboard_geometry_set(Ecore_Wl2_Window *win, int x, int y, int w, int h);
-EAPI Eina_Bool ecore_wl2_window_clipboard_geometry_get(Ecore_Wl2_Window *win, int *x, int *y, int *w, int *h);
-EAPI void ecore_wl2_window_clipboard_state_set(Ecore_Wl2_Window *win, Ecore_Wl2_Clipboard_State state);
-EAPI Ecore_Wl2_Clipboard_State ecore_wl2_window_clipboard_state_get(Ecore_Wl2_Window *win);
-EAPI void ecore_wl2_clipboard_show(Ecore_Wl2_Window *win);
-EAPI void ecore_wl2_clipboard_hide(Ecore_Wl2_Window *win);
-EAPI Eina_Bool ecore_wl2_clipboard_data_only_set(Eina_Bool data_only);
-//
-
-// TIZEN_ONLY(20171108) : add functions for keyboard
-EAPI void ecore_wl2_window_keyboard_geometry_set(Ecore_Wl2_Window *win, int x, int y, int w, int h);
-EAPI Eina_Bool ecore_wl2_window_keyboard_geometry_get(Ecore_Wl2_Window *win, int *x, int *y, int *w, int *h);
-EAPI void ecore_wl2_window_keyboard_state_set(Ecore_Wl2_Window *win, Ecore_Wl2_Virtual_Keyboard_State state);
-EAPI Ecore_Wl2_Virtual_Keyboard_State ecore_wl2_window_keyboard_state_get(Ecore_Wl2_Window *win);
-//
-
-/**
- * Gets default input of a given display
- *
- * @param display The display
- *
- * @ingroup Ecore_Wl2_Input_Group
- * @since 1.24
- */
-EAPI Ecore_Wl2_Input *ecore_wl2_input_default_input_get(const Ecore_Wl2_Display *ewd);
-
 /**
  * @defgroup Ecore_Wl2_Output_Group Wayland Library Output Functions
  * @ingroup Ecore_Wl2_Group
@@ -2058,6 +2807,8 @@ EAPI Ecore_Wl2_Input *ecore_wl2_input_default_input_get(const Ecore_Wl2_Display
  */
 
 /**
+ * @internal
+ *
  * Return the DPI of a given output
  *
  * This is a simplistic call to get DPI. It does not account for differing
@@ -2074,6 +2825,8 @@ EAPI Ecore_Wl2_Input *ecore_wl2_input_default_input_get(const Ecore_Wl2_Display
 EAPI int ecore_wl2_output_dpi_get(Ecore_Wl2_Output *output);
 
 /**
+ * @internal
+ *
  * Get the current transform of a given output
  *
  * @param output The output to get the transform of
@@ -2086,18 +2839,8 @@ EAPI int ecore_wl2_output_dpi_get(Ecore_Wl2_Output *output);
 EAPI int ecore_wl2_output_transform_get(Ecore_Wl2_Output *output);
 
 /**
- * Return the version of the display's compositor object
+ * @internal
  *
- * @param disp the display to get the compositor object version from
- *
- * @return the version of the display's compositor object
- *
- * @ingroup Ecore_Wl2_Display_Group
- * @since 1.17
- */
-EAPI int ecore_wl2_display_compositor_version_get(Ecore_Wl2_Display *disp);
-
-/**
  * Disable session recovery for any further connections.  Must be called
  * before connecting.  This is irreversible and not intended for general
  * use.
@@ -2106,141 +2849,15 @@ EAPI int ecore_wl2_display_compositor_version_get(Ecore_Wl2_Display *disp);
  */
 EAPI void ecore_wl2_session_recovery_disable(void);
 
-/**
- * Commit the surface of a wayland window.
- *
- * If flush is set this generates a wl_surface_commit(), otherwise it is
- * expected that some other call in the very near future (such as
- * eglSwapBuffers) will cause an implicit flush.
- *
- * A surface that has been commit will be in the "pending" state until
- * the compositor tells us it's time to draw again via a frame callback.
- *
- * @param window The window whose surface we want to commit
- * @param flush EINA_TRUE if we need to flush immediately.
- *
- * @since 1.21
- */
-EAPI void ecore_wl2_window_commit(Ecore_Wl2_Window *window, Eina_Bool flush);
-
-/**
- * Check if a wayland window's surface is in the pending state.
- *
- * A surface is pending if it's been commit but we haven't received a
- * frame callback for it yet.  This mean's we're not ready to draw yet.
- *
- * @param window The window whose surface we want to check
- *
- * @return whether the window's surface is pending or not.
- *
- * @since 1.21
- */
-EAPI Eina_Bool ecore_wl2_window_pending_get(Ecore_Wl2_Window *window);
-
-/**
- * Add a callback that fires when the window's surface_frame callback fires
- *
- * @param window The window to add a callback on
- * @param cb The callback
- * @param data User data to provide to the callback handler
- *
- * @since 1.21
- */
-EAPI Ecore_Wl2_Frame_Cb_Handle *ecore_wl2_window_frame_callback_add(Ecore_Wl2_Window *window, Ecore_Wl2_Frame_Cb cb, void *data);
-
-/**
- * delete a callback that fires when the window's surface_frame callback fires
- *
- * @param window The window to add a callback on
- * @param cb The callback handle
- *
- * @since 1.21
- */
-EAPI void ecore_wl2_window_frame_callback_del(Ecore_Wl2_Frame_Cb_Handle *handle);
-
-/**
- * Push buffered wayland protocol to compositor
- *
- * Wayland protocol is only actually sent when a flush occurs,
- * so the display should be flushed at appropriate times, such
- * as after a commit.
- *
- * @param display The display to flush
- *
- * @since 1.21
- */
-EAPI void ecore_wl2_display_flush(Ecore_Wl2_Display *display);
-
-/**
- * Get if a given window is resizing
- *
- * @param window The window to check for resizing
- *
- * @return EINA_TRUE if resizing, EINA_FALSE otherwise
- *
- * @ingroup Ecore_Wl2_Window_Group
- * @since 1.21
- */
-EAPI Eina_Bool ecore_wl2_window_resizing_get(Ecore_Wl2_Window *window);
-
-/**
- * Latch window state at the start of an update
- *
- * When async render takes place we continue to dispatch wayland
- * events from the main loop. We need to defer any changes to
- * window state from those events until the update is complete.
- *
- * Events deferred during an update will automatically fire
- * immediately after the caller calls ecore_wl2_window_commit.
- *
- * @param window The window whose state we want to latch
- *
- * @since 1.21
- */
-EAPI void ecore_wl2_window_update_begin(Ecore_Wl2_Window *window);
-
 /* TODO: doxygen if we are keeping any of the below functions public */
-
-
+/** @internal */
 EAPI Ecore_Wl2_Surface *ecore_wl2_surface_create(Ecore_Wl2_Window *win, Eina_Bool alpha);
 
-// TIZEN_ONLY(20171107): support a tizen_keyrouter interface
-EAPI void ecore_wl2_display_sync(Ecore_Wl2_Display *display);
-EAPI Eina_Bool ecore_wl2_window_keygrab_set(Ecore_Wl2_Window *win, const char *key, int mod EINA_UNUSED, int not_mod EINA_UNUSED, int priority EINA_UNUSED, Ecore_Wl2_Window_Keygrab_Mode grab_mode);
-EAPI Eina_Bool ecore_wl2_window_keygrab_unset(Ecore_Wl2_Window *win, const char *key, int mod EINA_UNUSED, int any_mod EINA_UNUSED);
-//
-EAPI Eina_List *ecore_wl2_window_keygrab_list_set(Ecore_Wl2_Window *win, Eina_List *infos);
-EAPI Eina_List *ecore_wl2_window_keygrab_list_unset(Ecore_Wl2_Window *win, Eina_List *infos);
-
-// TIZEN_ONLY(20171107): add ecore_wl2_window_input_get() EAPI
-EAPI Ecore_Wl2_Input *ecore_wl2_window_input_get(Ecore_Wl2_Window *win);
-//
-// TIZEN_ONLY(20171114): support a pointer warp
-EAPI Eina_Bool ecore_wl2_window_pointer_warp(Ecore_Wl2_Window *win, int x, int y);
-//
-
 //TIZEN_ONLY(20171108): add a new API to ecore_wl2_sync
+/** @internal */
 EAPI void ecore_wl2_sync(void);
 //
 
-//TIZEN_ONLY(20171115): support output transform
-EAPI Eina_Bool ecore_wl2_window_ignore_output_transform_get(Ecore_Wl2_Window *win);
-//
-
-//TIZEN_ONLY(20180810): support client demand move resize
-EAPI void
-ecore_wl2_window_sync_geometry_set(Ecore_Wl2_Window *window, uint32_t serial, int x, int y, int w, int h);
-//
-
-// TIZEN_ONLY(20190807): Support for wl_egl interface
-EAPI Ecore_Wl2_Egl_Window *ecore_wl2_egl_window_create(Ecore_Wl2_Window *window, int w, int h);
-EAPI void                  ecore_wl2_egl_window_destroy(Ecore_Wl2_Egl_Window *egl_win);
-EAPI void                 *ecore_wl2_egl_window_native_get(Ecore_Wl2_Egl_Window *egl_win);
-EAPI void                  ecore_wl2_egl_window_resize_with_rotation(Ecore_Wl2_Egl_Window *egl_win, int dx, int dy, int w, int h, int rotation);
-//
-
-# endif
-
 # undef EAPI
 # define EAPI
 
index 54e45c28ef28aca6305d7d1b5974f6f7393eb4d4..5c2d338f5626d508c50bb5e51bbe9834842a9ebe 100644 (file)
@@ -1802,7 +1802,7 @@ ecore_wl2_display_get(Ecore_Wl2_Display *display)
 
 // TIZEN_ONLY(20190807): Retrieve the existing native wayland display
 EAPI void *
-ecore_wl2_native_display_get(Ecore_Wl2_Display *display)
+ecore_wl2_display_native_get(Ecore_Wl2_Display *display)
 {
    EINA_SAFETY_ON_NULL_RETURN_VAL(display, NULL);
    return (void *)display->wl.display;
index 1f09df9f079ebcef31d4d6cae48a94d7bdd0cc52..d9c76368eff90dc9021412bc576e98ce8bca2da0 100644 (file)
@@ -30,7 +30,6 @@
 EAPI void ecore_wl2_window_false_commit(Ecore_Wl2_Window *window);
 EAPI Eina_Bool ecore_wl2_buffer_fit(Ecore_Wl2_Buffer *b, int w, int h);
 
-EAPI void ecore_wl2_window_damage(Ecore_Wl2_Window *window, Eina_Rectangle *rects, unsigned int count);
 EAPI Eina_Bool ecore_wl2_buffer_init(Ecore_Wl2_Display *ewd, Ecore_Wl2_Buffer_Type types);
 EAPI Ecore_Wl2_Buffer *ecore_wl2_buffer_create(Ecore_Wl2_Display *ewd, int w, int h, Eina_Bool alpha);
 EAPI void ecore_wl2_buffer_destroy(Ecore_Wl2_Buffer *b);
@@ -61,24 +60,6 @@ EAPI void ecore_wl2_surface_manager_del(Ecore_Wl2_Surface_Interface *intf);
 EAPI Ecore_Wl2_Window *ecore_wl2_surface_window_get(Ecore_Wl2_Surface *surface);
 EAPI Eina_Bool ecore_wl2_surface_alpha_get(Ecore_Wl2_Surface *surface);
 
-/**
- * Attach a buffer to a window
- *
- * Note that the GL stack my attach buffers to a surface - we should call this
- * function at that time (with a NULL buffer) to track whether a surface
- * has a valid buffer.  That is, call with implicit true and buffer NULL at
- * the time of glSwapBuffers.
- *
- * @param window The target window
- * @param buffer The buffer to attach
- * @param x X offset from corner
- * @param y Y offset from corner
- * @param implicit True if an external library is doing the actual attaching
- *
- * @since 1.21
- */
-EAPI void ecore_wl2_window_buffer_attach(Ecore_Wl2_Window *win, void *buffer, int x, int y, Eina_Bool implicit);
-
 /**
  * Set a buffer transform on a given window
  *