From: Woochanlee Date: Tue, 11 Feb 2020 06:31:21 +0000 (+0900) Subject: ecore_wl2: API classification for make it public. X-Git-Tag: submit/tizen/20200211.063445^0 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=13e3f766296a65be36f13dbda40f9a5cbec90e0f;p=platform%2Fupstream%2Fefl.git ecore_wl2: API classification for make it public. Change-Id: Id976bbd57ae1d743d3248c79e996866d2846c56b --- diff --git a/src/lib/ecore_wl2/Ecore_Wl2.h b/src/lib/ecore_wl2/Ecore_Wl2.h index 9752889..801ce60 100644 --- a/src/lib/ecore_wl2/Ecore_Wl2.h +++ b/src/lib/ecore_wl2/Ecore_Wl2.h @@ -3,12 +3,6 @@ # include # include -# include -# include -# include - -# define WL_HIDE_DEPRECATED -# include # ifdef EAPI # undef EAPI @@ -32,7 +26,6 @@ extern "C" { #define ECORE_WL2_SURFACE_INTERFACE_VERSION 1 -typedef struct _Ecore_Wl2_Subsurface Ecore_Wl2_Subsurface; # ifndef _ECORE_WL2_WINDOW_PREDEF typedef struct _Ecore_Wl2_Window Ecore_Wl2_Window; @@ -42,16 +35,8 @@ typedef struct _Ecore_Wl2_Display Ecore_Wl2_Display; typedef struct _Ecore_Wl2_Output Ecore_Wl2_Output; typedef struct _Ecore_Wl2_Input Ecore_Wl2_Input; typedef struct _Ecore_Wl2_Seat Ecore_Wl2_Seat; -typedef struct _Ecore_Wl2_Pointer Ecore_Wl2_Pointer; -typedef struct _Ecore_Wl2_Keyboard Ecore_Wl2_Keyboard; -typedef struct _Ecore_Wl2_Touch Ecore_Wl2_Touch; typedef struct _Ecore_Wl2_Offer Ecore_Wl2_Offer; typedef struct _Ecore_Wl2_Surface Ecore_Wl2_Surface; -// TIZEN_ONLY(20171109): support a tizen_input_device_manager interface -typedef struct _Ecore_Wl2_Tizen_Input_Eo_Device Ecore_Wl2_Tizen_Input_Eo_Device; -typedef struct _Ecore_Wl2_Tizen_Input_Device Ecore_Wl2_Tizen_Input_Device; - -// // TIZEN_ONLY(20190807): Support for wl_egl interface typedef struct _Ecore_Wl2_Egl_Window Ecore_Wl2_Egl_Window; // @@ -565,8 +550,6 @@ typedef struct _Ecore_Wl2_Window_Keygrab_Info } Ecore_Wl2_Window_Keygrab_Info; // -typedef void (*Ecore_Wl2_Bind_Cb)(struct wl_client *client, void *data, uint32_t version, uint32_t id); -typedef void (*Ecore_Wl2_Unbind_Cb)(struct wl_resource *resource); 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; @@ -700,35 +683,6 @@ EAPI int ecore_wl2_shutdown(void); */ /** - * 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_create(const char *name); - -/** - * Destroy an existing Wayland display - * - * @brief This function is typically used by servers to terminate an - * existing Wayland display. - * - * @param display The display to terminate - * - * @ingroup Ecore_Wl2_Display_Group - * @since 1.17 - */ -EAPI void ecore_wl2_display_destroy(Ecore_Wl2_Display *display); - -/** * Connect to an existing Wayland display * * @brief This function is typically used by clients to connect to an @@ -758,20 +712,6 @@ EAPI Ecore_Wl2_Display *ecore_wl2_display_connect(const char *name); EAPI void ecore_wl2_display_disconnect(Ecore_Wl2_Display *display); /** - * Terminate a Wayland display's main loop - * - * @brief This function is typically used by servers to terminate the - * Wayland display main loop. This is usually only called when a server - * encounters an error. - * - * @param display The Ecore_Wl2_Display to terminate - * - * @ingroup Ecore_Wl2_Display_Group - * @since 1.17 - */ -EAPI void ecore_wl2_display_terminate(Ecore_Wl2_Display *display); - -/** * Retrieve the existing Wayland display * * @param display The Ecore_Wl2_Display for which to retrieve the existing @@ -782,11 +722,7 @@ EAPI void ecore_wl2_display_terminate(Ecore_Wl2_Display *display); * @ingroup Ecore_Wl2_Display_Group * @since 1.17 */ -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); -// +EAPI void *ecore_wl2_display_get(Ecore_Wl2_Display *display); /** * Retrieve the wl_shm from a given Ecore_Wl2_Display @@ -799,28 +735,7 @@ EAPI void *ecore_wl2_native_display_get(Ecore_Wl2_Display *display); * @ingroup Ecore_Wl2_Display_Group * @since 1.17 */ -EAPI struct wl_shm *ecore_wl2_display_shm_get(Ecore_Wl2_Display *display); - -/** - * Retrieve the wl_dmabuf from a given Ecore_Wl2_Display - * - * - * @param display The Ecore_Wl2_Display for which to retrieve the existing - * Wayland dmabuf interface from - * - * @return The wl_dmabuf which this Ecore_Wl2_Display is using - * - * @ingroup Ecore_Wl2_Display_Group - * - * @note This is intended for client use only and should be used only - * after ecore_wl2_display_connect(). Also, the return type is - * void * instead of zpw_linux_dmabuf_v1 * since we don't want - * to change our public API every time the version changes in - * wayland-protocols. - * - * @since 1.18 - */ -EAPI void *ecore_wl2_display_dmabuf_get(Ecore_Wl2_Display *display); +EAPI void *ecore_wl2_display_shm_get(Ecore_Wl2_Display *display); /** * Return an Eina_Iterator that can be used to iterate through globals @@ -848,44 +763,6 @@ EAPI Eina_Iterator *ecore_wl2_display_globals_get(Ecore_Wl2_Display *display); 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 - * - * @return A Eina_Iterator of Ecore_Wl2_Input or @c NULL on error - * - * @ingroup Ecore_Wl2_Display_Group - * @since 1.19 - */ -EAPI Eina_Iterator *ecore_wl2_display_inputs_get(Ecore_Wl2_Display *display); - -/** - * Find a seat for a given display object using the seat id - * - * @param display The display - * @param id The seat id - * - * @return The corresponding Ecore_Wl2_Input object or @c NULL if no match is found - * - * @ingroup Ecore_Wl2_Display_Group - * @since 1.20 - */ -EAPI Ecore_Wl2_Input *ecore_wl2_display_input_find(const Ecore_Wl2_Display *display, unsigned int id); - -/** - * Find a seat for a given display object using the seat id - * - * @param display The display - * @param name The seat name - * - * @return The corresponding Ecore_Wl2_Input object or @c NULL if no match is found - * - * @ingroup Ecore_Wl2_Display_Group - * @since 1.20 - */ -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 @@ -908,45 +785,7 @@ EAPI Ecore_Wl2_Window *ecore_wl2_display_window_find(Ecore_Wl2_Display *display, * @ingroup Ecore_Wl2_Display_Group * @since 1.17 */ -EAPI struct wl_registry *ecore_wl2_display_registry_get(Ecore_Wl2_Display *display); - -/** - * Check if the display has performed a sync - * - * @param display The display - * - * @return True if the display sync has occurred - * @see ECORE_WL2_EVENT_SYNC_DONE - * - * @ingroup Ecore_Wl2_Display_Group - * @since 1.20 - */ -EAPI Eina_Bool ecore_wl2_display_sync_is_done(const Ecore_Wl2_Display *display); - -/** - * Get the name of the display object - * - * @param display The display - * - * @return The name of the display object - * - * @ingroup Ecore_Wl2_Display_Group - * @since 1.20 - */ -EAPI const char *ecore_wl2_display_name_get(const Ecore_Wl2_Display *display); - -/** - * Finds an Ecore_Wl2_Window based on wl_surface - * - * @param display The display to search for the window - * @param surface The wl_surface 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.24 - */ -EAPI Ecore_Wl2_Window *ecore_wl2_display_window_find_by_surface(Ecore_Wl2_Display *display, struct wl_surface *surface); +EAPI void *ecore_wl2_display_registry_get(Ecore_Wl2_Display *display); /** * Gets the connected display object @@ -974,7 +813,7 @@ EAPI Ecore_Wl2_Display *ecore_wl2_connected_display_get(const char *name); * @ingroup Ecore_Wl2_Display_Group * @since 1.24 */ -EAPI struct wl_compositor *ecore_wl2_display_compositor_get(Ecore_Wl2_Display *display); +EAPI void *ecore_wl2_display_compositor_get(Ecore_Wl2_Display *display); /** * @defgroup Ecore_Wl2_Window_Group Wayland Library Window Functions @@ -1012,18 +851,6 @@ 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 - * - * @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); - -/** * Get the wl_surface which belongs to this window * * @param window The Ecore_Wl2_Window to get the surface of @@ -1033,7 +860,7 @@ EAPI void ecore_wl2_window_close_callback_set(Ecore_Wl2_Window *window, void (*c * @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_surface_get(Ecore_Wl2_Window *window); /** * Get the id of a given Ecore_Wl2_Window @@ -1048,20 +875,6 @@ EAPI struct wl_surface *ecore_wl2_window_surface_get(Ecore_Wl2_Window *window); EAPI int ecore_wl2_window_surface_id_get(Ecore_Wl2_Window *window); /** - * @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); - -/** - * @see evas_object_size_hint_aspect_get - * @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); - -/** * Show a given Ecore_Wl2_Window * * @param window The Ecore_Wl2_Window to show @@ -1092,17 +905,6 @@ EAPI void ecore_wl2_window_hide(Ecore_Wl2_Window *window); EAPI void ecore_wl2_window_free(Ecore_Wl2_Window *window); /** - * @brief Begin moving a given Ecore_Wl2_Window - * - * @param window The Ecore_Wl2_Window which to move - * @param input The seat on which the move is active on - * - * @ingroup Ecore_Wl2_Window_Group - * @since 1.20 - */ -EAPI void ecore_wl2_window_move(Ecore_Wl2_Window *window, Ecore_Wl2_Input *input); - -/** * @brief Begin resizing a given window * * @param window The Ecore_Wl2_Window which to resize @@ -1114,27 +916,10 @@ 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); -EAPI void ecore_wl2_window_parent_set(Ecore_Wl2_Window *window, Ecore_Wl2_Window *parent); -EAPI void ecore_wl2_window_stack_mode_set(Ecore_Wl2_Window *window, Ecore_Wl2_Window_Stack_Mode mode); EAPI void ecore_wl2_window_position_set(Ecore_Wl2_Window *window, int x, int y); -EAPI int ecore_wl2_window_active_angle_get(Ecore_Wl2_Window *window); -// - -//TIZEN_ONLY(20171216): add ecore_wl2_window_find -EAPI Ecore_Wl2_Window *ecore_wl2_window_find(unsigned int id); // /** @@ -1161,56 +946,6 @@ EAPI Eina_Bool ecore_wl2_window_alpha_get(Ecore_Wl2_Window *window); 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 - * @param transparent EINA_TRUE to set window as transparent, - * EINA_FALSE otherwise - * - * @ingroup Ecore_Wl2_Window_Group - * @since 1.17 - */ -EAPI void ecore_wl2_window_transparent_set(Ecore_Wl2_Window *window, Eina_Bool transparent); - -// TIZEN_ONLY(20171108) : Get a window's transparent property -EAPI Eina_Bool ecore_wl2_window_transparent_get(Ecore_Wl2_Window *window); -// - -/** - * Set the opaque region of the Ecore_Wl2_Window - * - * @param win The window - * @param x The left point of the region. - * @param y The top point of the region. - * @param w The width of the region. - * @param h The height of the region. - * - * @ingroup Ecore_Wl2_Window_Group - * @since 1.17 - */ -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 -EAPI void ecore_wl2_window_input_rect_set(Ecore_Wl2_Window *win, Eina_Rectangle *input_rect); -EAPI void ecore_wl2_window_input_rect_add(Ecore_Wl2_Window *win, Eina_Rectangle *input_rect); -EAPI void ecore_wl2_window_input_rect_subtract(Ecore_Wl2_Window *win, Eina_Rectangle *input_rect); -// - -/** - * Get the opaque region of the Ecore_Wl2_Window - * - * @param win The window - * @param x The left point of the region. - * @param y The top point of the region. - * @param w The width of the region. - * @param h The height of the region. - * - * @ingroup Ecore_Wl2_Window_Group - * @since 1.24 - */ -EAPI void ecore_wl2_window_opaque_region_get(Ecore_Wl2_Window *window, int *x, int *y, int *w, int *h); - -/** * Set the input region of the Ecore_Wl2_Window. * * To set an empty region, pass width and height as 0. @@ -1243,52 +978,6 @@ 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); /** - * Get if a given window is maximized - * - * @param window The window to get the maximized state of - * - * @return EINA_TRUE if window is maximized, EINA_FALSE otherwise - * - * @ingroup Ecore_Wl2_Window_Group - * @since 1.17 - */ -EAPI Eina_Bool ecore_wl2_window_maximized_get(Ecore_Wl2_Window *window); - -/** - * Set the maximized state of a given window - * - * @param window The window to set the maximized state of - * @param maximized EINA_TRUE to set maximized, EINA_FALSE to unset - * - * @ingroup Ecore_Wl2_Window_Group - * @since 1.17 - */ -EAPI void ecore_wl2_window_maximized_set(Ecore_Wl2_Window *window, Eina_Bool maximized); - -/** - * Get if a given window is fullscreen - * - * @param window The window to get the fullscreen state of - * - * @return EINA_TRUE if window is fullscreen, EINA_FALSE otherwise - * - * @ingroup Ecore_Wl2_Window_Group - * @since 1.17 - */ -EAPI Eina_Bool ecore_wl2_window_fullscreen_get(Ecore_Wl2_Window *window); - -/** - * Set the fullscreen state of a given window - * - * @param window The window to set the fullscreen state of - * @param maximized EINA_TRUE to set fullscreen, EINA_FALSE to unset - * - * @ingroup Ecore_Wl2_Window_Group - * @since 1.17 - */ -EAPI void ecore_wl2_window_fullscreen_set(Ecore_Wl2_Window *window, Eina_Bool fullscreen); - -/** * Get if a given window is rotated * * @param window The window to get the rotation of @@ -1312,29 +1001,6 @@ 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 - * - * @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 @@ -1417,10 +1083,6 @@ 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 -EAPI void ecore_wl2_window_iconify_state_update(Ecore_Wl2_Window *window, Eina_Bool iconified, Eina_Bool send_event); -// - /** * Set the type of a given window * @@ -1455,52 +1117,6 @@ 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); /** - * Set if window rotation is supported by the window manager - * - * @param window - * @param enabled - * - * @ingroup Ecore_Wl2_Window_Group - * @since 1.20 - */ -EAPI void ecore_wl2_window_wm_rotation_supported_set(Ecore_Wl2_Window *window, Eina_Bool enabled); - -/** - * Get if window rotation is supported by the window manager - * - * @param window - * - * @return EINA_TRUE if supported, EINA_FALSE otherwise - * - * @ingroup Ecore_Wl2_Window_Group - * @since 1.20 - */ -EAPI Eina_Bool ecore_wl2_window_wm_rotation_supported_get(Ecore_Wl2_Window *window); - -/** - * Set if an application has set window rotation - * - * @param window - * @param set - * - * @ingroup Ecore_Wl2_Window_Group - * @since 1.20 - */ -EAPI void ecore_wl2_window_rotation_app_set(Ecore_Wl2_Window *window, Eina_Bool set); - -/** - * Get if an application has set window rotation - * - * @param window - * - * @return EINA_TRUE if set, EINA_FALSE otherwise - * - * @ingroup Ecore_Wl2_Window_Group - * @since 1.20 - */ -EAPI Eina_Bool ecore_wl2_window_rotation_app_get(Ecore_Wl2_Window *window); - -/** * Set preferred rotation on a given window * * @param window The window to set preferred rotation on @@ -1549,14 +1165,10 @@ EAPI void ecore_wl2_window_available_rotations_set(Ecore_Wl2_Window *window, con */ EAPI Eina_Bool ecore_wl2_window_available_rotations_get(Ecore_Wl2_Window *window, int **rots, unsigned int *count); -EAPI void ecore_wl2_window_rotation_change_prepare_send(Ecore_Wl2_Window *window, int rot, int w, int h, Eina_Bool resize); -EAPI void ecore_wl2_window_rotation_change_prepare_done_send(Ecore_Wl2_Window *window, int rot); -EAPI void ecore_wl2_window_rotation_change_request_send(Ecore_Wl2_Window *window, int rot); EAPI void ecore_wl2_window_rotation_change_done_send(Ecore_Wl2_Window *window, int rot, int w, int h); // TIZEN_ONLY EAPI void ecore_wl2_window_rotation_geometry_set(Ecore_Wl2_Window *win, int rot, int x, int y, int w, int h); -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)); // /** @@ -1608,60 +1220,6 @@ 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); /** - * @brief Get the activated state of a window - * - * @param window The window to get activated state from - * - * @return @c EINA_TRUE if activated - * - * @ingroup Ecore_Wl2_Window_Group - * @since 1.20 - */ -EAPI Eina_Bool ecore_wl2_window_activated_get(const Ecore_Wl2_Window *window); - -/** - * @brief Set the seat for a popup window to be used with grab - * - * @param window The window - * @param input The seat - * - * Use this function for desktop shell requests involving popup grabs which require - * a seat for the grab. - * - * @ingroup Ecore_Wl2_Window_Group - * @since 1.20 - */ -EAPI void ecore_wl2_window_popup_input_set(Ecore_Wl2_Window *window, Ecore_Wl2_Input *input); - -/** - * @brief Get the seat for a popup window to be used with grab - * - * @param window The window - * - * @return Returns Ecore_Wl2_Input if the window has an input. - * - * @ingroup Ecore_Wl2_Window_Group - * @since 1.24 - */ -EAPI Ecore_Wl2_Input *ecore_wl2_window_popup_input_get(Ecore_Wl2_Window *window); - -/** - * Check if a window has a shell surface - without one it can't be visible. - * - * @param The window to check - * - * @return Returns true if the window has an associated shell surface. - * - * @ingroup Ecore_Wl2_Window_Group - * @since 1.19 - */ -EAPI Eina_Bool ecore_wl2_window_shell_surface_exists(Ecore_Wl2_Window *win); - -// TIZEN_ONLY(171108) : get shell surface of a given window -EAPI struct zxdg_surface_v6 *ecore_wl2_window_shell_surface_get(Ecore_Wl2_Window *window); -// - -/** * Get which display a given window is using * * @param window The window to get the display of @@ -1696,67 +1254,12 @@ EAPI void ecore_wl2_window_focus_skip_set(Ecore_Wl2_Window *window, Eina_Bool fo */ EAPI Eina_Bool ecore_wl2_window_focus_skip_get(Ecore_Wl2_Window *window); -/** - * Set the role of a given window - * - * @param window - * @param role - * - * @ingroup Ecore_Wl2_Window_Group - * @since 1.20 - */ -EAPI void ecore_wl2_window_role_set(Ecore_Wl2_Window *window, const char *role); - -/** - * 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.24 - */ -EAPI const char *ecore_wl2_window_role_get(Ecore_Wl2_Window *window); - -/** - * Set if a given window is in floating mode - * - * @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 void ecore_wl2_window_floating_mode_set(Ecore_Wl2_Window *window, Eina_Bool floating); - -/** - * 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 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 - * - * @param surface The surface to find the window of - * - * @ingroup Ecore_Wl2_Window_Group - * @since 1.24 - */ -EAPI Ecore_Wl2_Window *ecore_wl2_window_surface_find(struct wl_surface *surface); - -/** * @defgroup Ecore_Wl2_Input_Group Wayland Library Input Functions * @ingroup Ecore_Wl2_Group * @@ -1774,41 +1277,7 @@ EAPI Ecore_Wl2_Window *ecore_wl2_window_surface_find(struct wl_surface *surface) * @ingroup Ecore_Wl2_Input_Group * @since 1.17 */ -EAPI struct wl_seat *ecore_wl2_input_seat_get(Ecore_Wl2_Input *input); - -/** - * Get the seat capabilities for a given input. - * - * @param input The input - * - * @ingroup Ecore_Wl2_Input_Group - * @since 1.19 - */ -EAPI Ecore_Wl2_Seat_Capabilities ecore_wl2_input_seat_capabilities_get(Ecore_Wl2_Input *input); - -/** - * Get the wayland's seat id from an input. - * - * @param input The input - * - * @return The seat id - * - * @ingroup Ecore_Wl2_Input_Group - * @since 1.19 - */ -EAPI unsigned int ecore_wl2_input_seat_id_get(Ecore_Wl2_Input *input) EINA_WARN_UNUSED_RESULT; - -/** - * Get the display object of an input - * - * @param input The input - * - * @return The display - * - * @ingroup Ecore_Wl2_Input_Group - * @since 1.20 - */ -EAPI Ecore_Wl2_Display *ecore_wl2_input_display_get(const Ecore_Wl2_Input *input); +EAPI void *ecore_wl2_input_seat_get(Ecore_Wl2_Input *input); /** * Get the xkb_keymap object of an input @@ -1820,19 +1289,7 @@ EAPI Ecore_Wl2_Display *ecore_wl2_input_display_get(const Ecore_Wl2_Input *input * @ingroup Ecore_Wl2_Input_Group * @since 1.20 */ -EAPI struct xkb_keymap *ecore_wl2_input_keymap_get(const Ecore_Wl2_Input *input); - -/** - * Get the name of an input - * - * @param input The input - * - * @return The name - * - * @ingroup Ecore_Wl2_Input_Group - * @since 1.20 - */ -EAPI Eina_Stringshare *ecore_wl2_input_name_get(Ecore_Wl2_Input *input); +EAPI void *ecore_wl2_input_keymap_get(const Ecore_Wl2_Input *input); /** * Get the keyboard repeat rate and delay of an input @@ -1883,7 +1340,7 @@ EAPI Eina_Bool ecore_wl2_input_pointer_xy_get(const Ecore_Wl2_Input *input, int * @ingroup Ecore_Wl2_Input_Group * @since 1.20 */ -EAPI void ecore_wl2_input_pointer_set(Ecore_Wl2_Input *input, struct wl_surface *surface, int hot_x, int hot_y); +EAPI void ecore_wl2_input_pointer_set(Ecore_Wl2_Input *input, void *surface, int hot_x, int hot_y); /** * Set a specific cursor on a given seat @@ -1901,17 +1358,7 @@ 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 -EAPI void ecore_wl2_input_pointer_set(Ecore_Wl2_Input *input, struct wl_surface *surface, int hot_x, int hot_y); -EAPI struct wl_cursor *ecore_wl2_input_cursor_get(Ecore_Wl2_Input *input, const char *cursor_name); -EAPI void ecore_wl2_input_cursor_size_set(Ecore_Wl2_Input *input, const int size); EAPI void ecore_wl2_input_cursor_theme_name_set(Ecore_Wl2_Input *input, const char *cursor_theme_name); -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 @@ -1922,54 +1369,6 @@ EAPI void ecore_wl2_window_cursor_default_restore(Ecore_Wl2_Window *win); */ /** - * Set the types which are supported by a possible drag and drop operation. - * This call initializes a data source and offeres the given mimetypes - * - * @param input the input where to add on the data source - * @param types a null-terminated array of mimetypes - * - * @ingroup Ecore_Wl2_Dnd_Group - * @since 1.17 - */ -EAPI void ecore_wl2_dnd_drag_types_set(Ecore_Wl2_Input *input, const char **types); - -/** - * Start a drag on the given input - * - * @param input the input to use - * @param window the window which is the origin of the drag operation - * @param drag_window the window which is used as window of the visible hint. - * - * @return The serial for the start_drag request - * - * @ingroup Ecore_Wl2_Dnd_Group - * @since 1.17 - */ -EAPI uint32_t ecore_wl2_dnd_drag_start(Ecore_Wl2_Input *input, Ecore_Wl2_Window *window, Ecore_Wl2_Window *drag_window); - -/** - * Call wl_data_source.set_actions on an existing source - * - * @param input the input to use - * - * @see ecore_wl2_dnd_drag_start for a more useful function. - * - * @ingroup Ecore_Wl2_Dnd_Group - * @since 1.20 - */ -EAPI void ecore_wl2_dnd_set_actions(Ecore_Wl2_Input *input); - -/** - * End a drag started by a call to ecore_wl2_dnd_drag_start - * - * @param input the input object on which the drag was started - * - * @ingroup Ecore_Wl2_Dnd_Group - * @since 1.17 - */ -EAPI void ecore_wl2_dnd_drag_end(Ecore_Wl2_Input *input); - -/** * Get the offer which is currently resposible for the clipboard * * @param input the input object to use @@ -1994,51 +1393,12 @@ 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); -/** - * Clear the selection currently setted on this input. - * - * @param input the input to clear - * - * @return serial of request on success, 0 on failure - * - * @ingroup Ecore_Wl2_Dnd_Group - * @since 1.17 - */ -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 * @@ -2086,27 +1446,6 @@ 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 - * - * @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. - * - * @since 1.19 - */ -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 @@ -2124,20 +1463,6 @@ EAPI void ecore_wl2_session_recovery_disable(void); 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 @@ -2171,65 +1496,22 @@ EAPI void ecore_wl2_window_frame_callback_del(Ecore_Wl2_Frame_Cb_Handle *handle) */ 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 */ - - 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 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); +EAPI Eina_Bool ecore_wl2_window_ignore_output_transform_get(Ecore_Wl2_Window *win); // // TIZEN_ONLY(20190807): Support for wl_egl interface diff --git a/src/lib/ecore_wl2/ecore_wl2_display.c b/src/lib/ecore_wl2/ecore_wl2_display.c index 54e45c2..edeb7b9 100644 --- a/src/lib/ecore_wl2/ecore_wl2_display.c +++ b/src/lib/ecore_wl2/ecore_wl2_display.c @@ -1793,7 +1793,7 @@ ecore_wl2_display_terminate(Ecore_Wl2_Display *display) wl_display_terminate(display->wl.display); } -EAPI struct wl_display * +EAPI void * ecore_wl2_display_get(Ecore_Wl2_Display *display) { EINA_SAFETY_ON_NULL_RETURN_VAL(display, NULL); @@ -1809,7 +1809,7 @@ ecore_wl2_native_display_get(Ecore_Wl2_Display *display) } // -EAPI struct wl_shm * +EAPI void * ecore_wl2_display_shm_get(Ecore_Wl2_Display *display) { EINA_SAFETY_ON_NULL_RETURN_VAL(display, NULL); @@ -1903,7 +1903,7 @@ ecore_wl2_display_window_find(Ecore_Wl2_Display *display, unsigned int id) return NULL; } -EAPI struct wl_registry * +EAPI void * ecore_wl2_display_registry_get(Ecore_Wl2_Display *display) { EINA_SAFETY_ON_NULL_RETURN_VAL(display, NULL); @@ -1987,7 +1987,7 @@ ecore_wl2_display_flush(Ecore_Wl2_Display *display) } EAPI Ecore_Wl2_Window * -ecore_wl2_display_window_find_by_surface(Ecore_Wl2_Display *display, struct wl_surface *surface) +ecore_wl2_display_window_find_by_surface(Ecore_Wl2_Display *display, void *surface) { return _ecore_wl2_display_window_surface_find(display, surface); } @@ -2023,7 +2023,7 @@ ecore_wl2_connected_display_get(const char *name) return ewd; } -EAPI struct wl_compositor * +EAPI void * ecore_wl2_display_compositor_get(Ecore_Wl2_Display *display) { EINA_SAFETY_ON_NULL_RETURN_VAL(display, NULL); diff --git a/src/lib/ecore_wl2/ecore_wl2_input.c b/src/lib/ecore_wl2/ecore_wl2_input.c index 32a6bf1..27d4796 100644 --- a/src/lib/ecore_wl2/ecore_wl2_input.c +++ b/src/lib/ecore_wl2/ecore_wl2_input.c @@ -2485,7 +2485,7 @@ _ecore_wl2_cb_key_cancel(void *data, struct tizen_keyrouter *tizen_keyrouter EIN } static void -_ecore_wl2_cb_event_surface(void *data, struct tizen_keyrouter *tizen_keyrouter EINA_UNUSED, struct wl_surface *surface, uint32_t key EINA_UNUSED, uint32_t mode) +_ecore_wl2_cb_event_surface(void *data, struct tizen_keyrouter *tizen_keyrouter EINA_UNUSED, struct wl_surface *surface, uint32_t mode) { Ecore_Wl2_Display *ewd = (Ecore_Wl2_Display *)data; Ecore_Wl2_Input *input; @@ -3469,7 +3469,7 @@ _ecore_wl2_input_device_manager_setup(Ecore_Wl2_Display *ewd, unsigned int id, u } // -EAPI struct wl_seat * +EAPI void * ecore_wl2_input_seat_get(Ecore_Wl2_Input *input) { EINA_SAFETY_ON_NULL_RETURN_VAL(input, NULL); @@ -3516,7 +3516,7 @@ ecore_wl2_input_display_get(const Ecore_Wl2_Input *input) return input->display; } -EAPI struct xkb_keymap * +EAPI void * ecore_wl2_input_keymap_get(const Ecore_Wl2_Input *input) { EINA_SAFETY_ON_NULL_RETURN_VAL(input, NULL); @@ -3560,7 +3560,7 @@ _pointer_update_stop(Ecore_Wl2_Input *input) // EAPI void -ecore_wl2_input_pointer_set(Ecore_Wl2_Input *input, struct wl_surface *surface, int hot_x, int hot_y) +ecore_wl2_input_pointer_set(Ecore_Wl2_Input *input, void *surface, int hot_x, int hot_y) { EINA_SAFETY_ON_NULL_RETURN(input); @@ -3583,7 +3583,7 @@ ecore_wl2_input_pointer_set(Ecore_Wl2_Input *input, struct wl_surface *surface, } // TIZEN_ONLY(20171207): add functions to set client's custom cursors -EAPI struct wl_cursor * +EAPI void * ecore_wl2_input_cursor_get(Ecore_Wl2_Input *input, const char *cursor_name) { if ((!input) || (!input->cursor.theme)) diff --git a/src/lib/ecore_wl2/ecore_wl2_internal.h b/src/lib/ecore_wl2/ecore_wl2_internal.h index 1f09df9..ba5f55a 100644 --- a/src/lib/ecore_wl2/ecore_wl2_internal.h +++ b/src/lib/ecore_wl2/ecore_wl2_internal.h @@ -1,6 +1,13 @@ #ifndef _ECORE_WL2_INTERNAL_H # define _ECORE_WL2_INTERNAL_H +# include +# include +# include + +# define WL_HIDE_DEPRECATED +# include + # ifdef EAPI # undef EAPI # endif @@ -27,6 +34,15 @@ # endif # endif +typedef struct _Ecore_Wl2_Subsurface Ecore_Wl2_Subsurface; +typedef struct _Ecore_Wl2_Pointer Ecore_Wl2_Pointer; +typedef struct _Ecore_Wl2_Keyboard Ecore_Wl2_Keyboard; +typedef struct _Ecore_Wl2_Touch Ecore_Wl2_Touch; +// TIZEN_ONLY(20171109): support a tizen_input_device_manager interface +typedef struct _Ecore_Wl2_Tizen_Input_Eo_Device Ecore_Wl2_Tizen_Input_Eo_Device; +typedef struct _Ecore_Wl2_Tizen_Input_Device Ecore_Wl2_Tizen_Input_Device; +// + 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); @@ -378,6 +394,716 @@ EAPI void ecore_wl2_subsurface_sync_set(Ecore_Wl2_Subsurface *subsurface, Eina_B */ EAPI void ecore_wl2_subsurface_opaque_region_set(Ecore_Wl2_Subsurface *subsurface, int x, int y, int w, int h); +/** + * 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_create(const char *name); + +/** + * Destroy an existing Wayland display + * + * @brief This function is typically used by servers to terminate an + * existing Wayland display. + * + * @param display The display to terminate + * + * @ingroup Ecore_Wl2_Display_Group + * @since 1.17 + */ +EAPI void ecore_wl2_display_destroy(Ecore_Wl2_Display *display); + +/** + * Terminate a Wayland display's main loop + * + * @brief This function is typically used by servers to terminate the + * Wayland display main loop. This is usually only called when a server + * encounters an error. + * + * @param display The Ecore_Wl2_Display to terminate + * + * @ingroup Ecore_Wl2_Display_Group + * @since 1.17 + */ +EAPI void ecore_wl2_display_terminate(Ecore_Wl2_Display *display); + +// TIZEN_ONLY(20190807): Retrieve the existing native wayland display +EAPI void *ecore_wl2_native_display_get(Ecore_Wl2_Display *display); +// + +/** + * Retrieve the wl_dmabuf from a given Ecore_Wl2_Display + * + * + * @param display The Ecore_Wl2_Display for which to retrieve the existing + * Wayland dmabuf interface from + * + * @return The wl_dmabuf which this Ecore_Wl2_Display is using + * + * @ingroup Ecore_Wl2_Display_Group + * + * @note This is intended for client use only and should be used only + * after ecore_wl2_display_connect(). Also, the return type is + * void * instead of zpw_linux_dmabuf_v1 * since we don't want + * to change our public API every time the version changes in + * wayland-protocols. + * + * @since 1.18 + */ +EAPI void *ecore_wl2_display_dmabuf_get(Ecore_Wl2_Display *display); + +/** + * Get all the Ecore_Wl2_Input from the display. + * + * @param display The display + * + * @return A Eina_Iterator of Ecore_Wl2_Input or @c NULL on error + * + * @ingroup Ecore_Wl2_Display_Group + * @since 1.19 + */ +EAPI Eina_Iterator *ecore_wl2_display_inputs_get(Ecore_Wl2_Display *display); + +/** + * Find a seat for a given display object using the seat id + * + * @param display The display + * @param id The seat id + * + * @return The corresponding Ecore_Wl2_Input object or @c NULL if no match is found + * + * @ingroup Ecore_Wl2_Display_Group + * @since 1.20 + */ +EAPI Ecore_Wl2_Input *ecore_wl2_display_input_find(const Ecore_Wl2_Display *display, unsigned int id); + +/** + * Find a seat for a given display object using the seat id + * + * @param display The display + * @param name The seat name + * + * @return The corresponding Ecore_Wl2_Input object or @c NULL if no match is found + * + * @ingroup Ecore_Wl2_Display_Group + * @since 1.20 + */ +EAPI Ecore_Wl2_Input *ecore_wl2_display_input_find_by_name(const Ecore_Wl2_Display *display, const char *name); + +/** + * Check if the display has performed a sync + * + * @param display The display + * + * @return True if the display sync has occurred + * @see ECORE_WL2_EVENT_SYNC_DONE + * + * @ingroup Ecore_Wl2_Display_Group + * @since 1.20 + */ +EAPI Eina_Bool ecore_wl2_display_sync_is_done(const Ecore_Wl2_Display *display); + +/** + * Get the name of the display object + * + * @param display The display + * + * @return The name of the display object + * + * @ingroup Ecore_Wl2_Display_Group + * @since 1.20 + */ +EAPI const char *ecore_wl2_display_name_get(const Ecore_Wl2_Display *display); + +/** + * Finds an Ecore_Wl2_Window based on wl_surface + * + * @param display The display to search for the window + * @param surface The wl_surface 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.24 + */ +EAPI Ecore_Wl2_Window *ecore_wl2_display_window_find_by_surface(Ecore_Wl2_Display *display, void *surface); + +/** + * 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); + +/** + * @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); + +/** + * @see evas_object_size_hint_aspect_get + * @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); + +/** + * @brief Begin moving a given Ecore_Wl2_Window + * + * @param window The Ecore_Wl2_Window which to move + * @param input The seat on which the move is active on + * + * @ingroup Ecore_Wl2_Window_Group + * @since 1.20 + */ +EAPI void ecore_wl2_window_move(Ecore_Wl2_Window *window, Ecore_Wl2_Input *input); + +/** + * 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); + +EAPI void ecore_wl2_window_parent_set(Ecore_Wl2_Window *window, Ecore_Wl2_Window *parent); +EAPI void ecore_wl2_window_stack_mode_set(Ecore_Wl2_Window *window, Ecore_Wl2_Window_Stack_Mode mode); +EAPI int ecore_wl2_window_active_angle_get(Ecore_Wl2_Window *window); + +//TIZEN_ONLY(20171216): add ecore_wl2_window_find +EAPI Ecore_Wl2_Window *ecore_wl2_window_find(unsigned int id); +// + +/** + * Set a given window's transparent property + * + * @param window The window on which to set the transparent property + * @param transparent EINA_TRUE to set window as transparent, + * EINA_FALSE otherwise + * + * @ingroup Ecore_Wl2_Window_Group + * @since 1.17 + */ +EAPI void ecore_wl2_window_transparent_set(Ecore_Wl2_Window *window, Eina_Bool transparent); + +// TIZEN_ONLY(20171108) : Get a window's transparent property +EAPI Eina_Bool ecore_wl2_window_transparent_get(Ecore_Wl2_Window *window); +// + +/** + * Set the opaque region of the Ecore_Wl2_Window + * + * @param win The window + * @param x The left point of the region. + * @param y The top point of the region. + * @param w The width of the region. + * @param h The height of the region. + * + * @ingroup Ecore_Wl2_Window_Group + * @since 1.17 + */ +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 +EAPI void ecore_wl2_window_input_rect_set(Ecore_Wl2_Window *win, Eina_Rectangle *input_rect); +EAPI void ecore_wl2_window_input_rect_add(Ecore_Wl2_Window *win, Eina_Rectangle *input_rect); +EAPI void ecore_wl2_window_input_rect_subtract(Ecore_Wl2_Window *win, Eina_Rectangle *input_rect); +// + +/** + * Get the opaque region of the Ecore_Wl2_Window + * + * @param win The window + * @param x The left point of the region. + * @param y The top point of the region. + * @param w The width of the region. + * @param h The height of the region. + * + * @ingroup Ecore_Wl2_Window_Group + * @since 1.24 + */ +EAPI void ecore_wl2_window_opaque_region_get(Ecore_Wl2_Window *window, int *x, int *y, int *w, int *h); + +/** + * Get if a given window is maximized + * + * @param window The window to get the maximized state of + * + * @return EINA_TRUE if window is maximized, EINA_FALSE otherwise + * + * @ingroup Ecore_Wl2_Window_Group + * @since 1.17 + */ +EAPI Eina_Bool ecore_wl2_window_maximized_get(Ecore_Wl2_Window *window); + +/** + * Set the maximized state of a given window + * + * @param window The window to set the maximized state of + * @param maximized EINA_TRUE to set maximized, EINA_FALSE to unset + * + * @ingroup Ecore_Wl2_Window_Group + * @since 1.17 + */ +EAPI void ecore_wl2_window_maximized_set(Ecore_Wl2_Window *window, Eina_Bool maximized); + +/** + * Get if a given window is fullscreen + * + * @param window The window to get the fullscreen state of + * + * @return EINA_TRUE if window is fullscreen, EINA_FALSE otherwise + * + * @ingroup Ecore_Wl2_Window_Group + * @since 1.17 + */ +EAPI Eina_Bool ecore_wl2_window_fullscreen_get(Ecore_Wl2_Window *window); + +/** + * Set the fullscreen state of a given window + * + * @param window The window to set the fullscreen state of + * @param maximized EINA_TRUE to set fullscreen, EINA_FALSE to unset + * + * @ingroup Ecore_Wl2_Window_Group + * @since 1.17 + */ +EAPI void ecore_wl2_window_fullscreen_set(Ecore_Wl2_Window *window, Eina_Bool fullscreen); + +/** + * 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 const char *ecore_wl2_window_title_get(Ecore_Wl2_Window *window); + +// TIZEN_ONLY(20151231) : handling iconic state on tizen +EAPI void ecore_wl2_window_iconify_state_update(Ecore_Wl2_Window *window, Eina_Bool iconified, Eina_Bool send_event); +// + +/** + * Set if window rotation is supported by the window manager + * + * @param window + * @param enabled + * + * @ingroup Ecore_Wl2_Window_Group + * @since 1.20 + */ +EAPI void ecore_wl2_window_wm_rotation_supported_set(Ecore_Wl2_Window *window, Eina_Bool enabled); + +/** + * Get if window rotation is supported by the window manager + * + * @param window + * + * @return EINA_TRUE if supported, EINA_FALSE otherwise + * + * @ingroup Ecore_Wl2_Window_Group + * @since 1.20 + */ +EAPI Eina_Bool ecore_wl2_window_wm_rotation_supported_get(Ecore_Wl2_Window *window); + +/** + * Set if an application has set window rotation + * + * @param window + * @param set + * + * @ingroup Ecore_Wl2_Window_Group + * @since 1.20 + */ +EAPI void ecore_wl2_window_rotation_app_set(Ecore_Wl2_Window *window, Eina_Bool set); + +/** + * Get if an application has set window rotation + * + * @param window + * + * @return EINA_TRUE if set, EINA_FALSE otherwise + * + * @ingroup Ecore_Wl2_Window_Group + * @since 1.20 + */ +EAPI Eina_Bool ecore_wl2_window_rotation_app_get(Ecore_Wl2_Window *window); + +EAPI void ecore_wl2_window_rotation_change_prepare_send(Ecore_Wl2_Window *window, int rot, int w, int h, Eina_Bool resize); +EAPI void ecore_wl2_window_rotation_change_prepare_done_send(Ecore_Wl2_Window *window, int rot); +EAPI void ecore_wl2_window_rotation_change_request_send(Ecore_Wl2_Window *window, int rot); +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)); + +/** + * @brief Get the activated state of a window + * + * @param window The window to get activated state from + * + * @return @c EINA_TRUE if activated + * + * @ingroup Ecore_Wl2_Window_Group + * @since 1.20 + */ +EAPI Eina_Bool ecore_wl2_window_activated_get(const Ecore_Wl2_Window *window); + +/** + * @brief Set the seat for a popup window to be used with grab + * + * @param window The window + * @param input The seat + * + * Use this function for desktop shell requests involving popup grabs which require + * a seat for the grab. + * + * @ingroup Ecore_Wl2_Window_Group + * @since 1.20 + */ +EAPI void ecore_wl2_window_popup_input_set(Ecore_Wl2_Window *window, Ecore_Wl2_Input *input); + +/** + * @brief Get the seat for a popup window to be used with grab + * + * @param window The window + * + * @return Returns Ecore_Wl2_Input if the window has an input. + * + * @ingroup Ecore_Wl2_Window_Group + * @since 1.24 + */ +EAPI Ecore_Wl2_Input *ecore_wl2_window_popup_input_get(Ecore_Wl2_Window *window); + +/** + * Check if a window has a shell surface - without one it can't be visible. + * + * @param The window to check + * + * @return Returns true if the window has an associated shell surface. + * + * @ingroup Ecore_Wl2_Window_Group + * @since 1.19 + */ +EAPI Eina_Bool ecore_wl2_window_shell_surface_exists(Ecore_Wl2_Window *win); + +// TIZEN_ONLY(171108) : get shell surface of a given window +EAPI struct zxdg_surface_v6 *ecore_wl2_window_shell_surface_get(Ecore_Wl2_Window *window); +// + +/** + * Set the role of a given window + * + * @param window + * @param role + * + * @ingroup Ecore_Wl2_Window_Group + * @since 1.20 + */ +EAPI void ecore_wl2_window_role_set(Ecore_Wl2_Window *window, const char *role); + +/** + * 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.24 + */ +EAPI const char *ecore_wl2_window_role_get(Ecore_Wl2_Window *window); + +/** + * Set if a given window is in floating mode + * + * @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 void ecore_wl2_window_floating_mode_set(Ecore_Wl2_Window *window, Eina_Bool floating); + +/** + * 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 Eina_Bool ecore_wl2_window_floating_mode_get(Ecore_Wl2_Window *window); + +/** + * Finds a window by surface + * + * @param surface The surface to find the window of + * + * @ingroup Ecore_Wl2_Window_Group + * @since 1.24 + */ +EAPI Ecore_Wl2_Window *ecore_wl2_window_surface_find(void *surface); + +/** + * Get the seat capabilities for a given input. + * + * @param input The input + * + * @ingroup Ecore_Wl2_Input_Group + * @since 1.19 + */ +EAPI Ecore_Wl2_Seat_Capabilities ecore_wl2_input_seat_capabilities_get(Ecore_Wl2_Input *input); + +/** + * Get the wayland's seat id from an input. + * + * @param input The input + * + * @return The seat id + * + * @ingroup Ecore_Wl2_Input_Group + * @since 1.19 + */ +EAPI unsigned int ecore_wl2_input_seat_id_get(Ecore_Wl2_Input *input) EINA_WARN_UNUSED_RESULT; + +/** + * Get the display object of an input + * + * @param input The input + * + * @return The display + * + * @ingroup Ecore_Wl2_Input_Group + * @since 1.20 + */ +EAPI Ecore_Wl2_Display *ecore_wl2_input_display_get(const Ecore_Wl2_Input *input); + +/** + * Get the name of an input + * + * @param input The input + * + * @return The name + * + * @ingroup Ecore_Wl2_Input_Group + * @since 1.20 + */ +EAPI Eina_Stringshare *ecore_wl2_input_name_get(Ecore_Wl2_Input *input); + +// INTERNAL +EAPI void ecore_wl2_input_pointer_set(Ecore_Wl2_Input *input, void *surface, int hot_x, int hot_y); +// INTERNAL +EAPI void *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_default_restore(Ecore_Wl2_Input *input); + +// INTERNAL +EAPI void ecore_wl2_window_pointer_set(Ecore_Wl2_Window *win, void *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); +// +/** + * Set the types which are supported by a possible drag and drop operation. + * This call initializes a data source and offeres the given mimetypes + * + * @param input the input where to add on the data source + * @param types a null-terminated array of mimetypes + * + * @ingroup Ecore_Wl2_Dnd_Group + * @since 1.17 + */ +EAPI void ecore_wl2_dnd_drag_types_set(Ecore_Wl2_Input *input, const char **types); + +/** + * Start a drag on the given input + * + * @param input the input to use + * @param window the window which is the origin of the drag operation + * @param drag_window the window which is used as window of the visible hint. + * + * @return The serial for the start_drag request + * + * @ingroup Ecore_Wl2_Dnd_Group + * @since 1.17 + */ +EAPI uint32_t ecore_wl2_dnd_drag_start(Ecore_Wl2_Input *input, Ecore_Wl2_Window *window, Ecore_Wl2_Window *drag_window); + +/** + * Call wl_data_source.set_actions on an existing source + * + * @param input the input to use + * + * @see ecore_wl2_dnd_drag_start for a more useful function. + * + * @ingroup Ecore_Wl2_Dnd_Group + * @since 1.20 + */ +EAPI void ecore_wl2_dnd_set_actions(Ecore_Wl2_Input *input); + +/** + * End a drag started by a call to ecore_wl2_dnd_drag_start + * + * @param input the input object on which the drag was started + * + * @ingroup Ecore_Wl2_Dnd_Group + * @since 1.17 + */ +EAPI void ecore_wl2_dnd_drag_end(Ecore_Wl2_Input *input); + +/** + * Clear the selection currently setted on this input. + * + * @param input the input to clear + * + * @return serial of request on success, 0 on failure + * + * @ingroup Ecore_Wl2_Dnd_Group + * @since 1.17 + */ +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_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); + +// 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); +// + +/** + * Return the version of the display's compositor object + * + * @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. + * + * @since 1.19 + */ +EAPI void ecore_wl2_session_recovery_disable(void); + +/** + * 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); + +/** + * 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); + +// 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(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); +// + # undef EAPI # define EAPI diff --git a/src/lib/ecore_wl2/ecore_wl2_private.h b/src/lib/ecore_wl2/ecore_wl2_private.h index bb0e643..9c0e4d3 100644 --- a/src/lib/ecore_wl2/ecore_wl2_private.h +++ b/src/lib/ecore_wl2/ecore_wl2_private.h @@ -84,6 +84,10 @@ extern Eina_Bool no_session_recovery; # endif # define CRI(...) EINA_LOG_DOM_CRIT(_ecore_wl2_log_dom, __VA_ARGS__) +typedef void (*Ecore_Wl2_Bind_Cb)(struct wl_client *client, void *data, uint32_t version, uint32_t id); +typedef void (*Ecore_Wl2_Unbind_Cb)(struct wl_resource *resource); + + typedef struct _Ecore_Wl2_Input_Devices { Eo *pointer_dev; diff --git a/src/lib/ecore_wl2/ecore_wl2_window.c b/src/lib/ecore_wl2/ecore_wl2_window.c index c1a541a..0b134e6 100644 --- a/src/lib/ecore_wl2/ecore_wl2_window.c +++ b/src/lib/ecore_wl2/ecore_wl2_window.c @@ -1108,7 +1108,7 @@ ecore_wl2_window_close_callback_set(Ecore_Wl2_Window *window, void (*cb) (void * window->cb_close_data = data; } -EAPI struct wl_surface * +EAPI void * ecore_wl2_window_surface_get(Ecore_Wl2_Window *window) { EINA_SAFETY_ON_NULL_RETURN_VAL(window, NULL); @@ -3331,7 +3331,7 @@ ecore_wl2_window_type_get(Ecore_Wl2_Window *window) } EAPI Ecore_Wl2_Window * -ecore_wl2_window_surface_find(struct wl_surface *surface) +ecore_wl2_window_surface_find(void *surface) { Ecore_Wl2_Display *ewd; Ecore_Wl2_Window *win; @@ -3423,7 +3423,7 @@ ecore_wl2_window_ignore_output_transform_get(Ecore_Wl2_Window *window) // TIZEN_ONLY(20171207): add functions to set client's custom cursors EAPI void -ecore_wl2_window_pointer_set(Ecore_Wl2_Window *win, struct wl_surface *surface, int hot_x, int hot_y) +ecore_wl2_window_pointer_set(Ecore_Wl2_Window *win, void *surface, int hot_x, int hot_y) { Ecore_Wl2_Input *input; diff --git a/src/lib/ecore_wl2/meson.build b/src/lib/ecore_wl2/meson.build index 0599c6d..7e5ce49 100644 --- a/src/lib/ecore_wl2/meson.build +++ b/src/lib/ecore_wl2/meson.build @@ -10,6 +10,7 @@ ecore_wl2_header_src = [ ] ecore_wl2_src = [ + 'ecore_wl2_internal.h', 'ecore_wl2_subsurf.c', 'ecore_wl2_dnd.c', 'ecore_wl2_window.c', diff --git a/src/modules/ecore_imf/wayland/wayland_imcontext.h b/src/modules/ecore_imf/wayland/wayland_imcontext.h index 5504862..0dddb7b 100644 --- a/src/modules/ecore_imf/wayland/wayland_imcontext.h +++ b/src/modules/ecore_imf/wayland/wayland_imcontext.h @@ -25,6 +25,7 @@ #include #include +#include #include "text-input-unstable-v1-client-protocol.h"