From 3087f02ef296c172583cac96a5c783a787662596 Mon Sep 17 00:00:00 2001 From: Chris Michael Date: Fri, 9 Jun 2017 10:39:00 -0400 Subject: [PATCH] ecore-wl2: Add API and Event for window rotation change prepare done @feature Signed-off-by: Chris Michael --- src/lib/ecore_wl2/Ecore_Wl2.h | 3 +++ src/lib/ecore_wl2/ecore_wl2.c | 6 +++++- src/lib/ecore_wl2/ecore_wl2_window.c | 20 ++++++++++++++++++++ 3 files changed, 28 insertions(+), 1 deletion(-) diff --git a/src/lib/ecore_wl2/Ecore_Wl2.h b/src/lib/ecore_wl2/Ecore_Wl2.h index 08ae40b19d..96ccc848c0 100644 --- a/src/lib/ecore_wl2/Ecore_Wl2.h +++ b/src/lib/ecore_wl2/Ecore_Wl2.h @@ -283,6 +283,7 @@ typedef struct _Ecore_Wl2_Event_Window_Rotation Eina_Bool resize : 1; } Ecore_Wl2_Event_Window_Rotation; typedef struct _Ecore_Wl2_Event_Window_Rotation Ecore_Wl2_Event_Window_Rotation_Change_Prepare; +typedef struct _Ecore_Wl2_Event_Window_Rotation Ecore_Wl2_Event_Window_Rotation_Change_Prepare_Done; typedef enum _Ecore_Wl2_Window_Type { @@ -326,6 +327,7 @@ EAPI extern int ECORE_WL2_EVENT_SEAT_KEYBOARD_REPEAT_CHANGED; /** @since 1.20 */ EAPI extern int ECORE_WL2_EVENT_SEAT_SELECTION; /** @since 1.20 */ EAPI extern int ECORE_WL2_EVENT_OUTPUT_TRANSFORM; /** @since 1.20 */ EAPI extern int ECORE_Wl2_EVENT_WINDOW_ROTATION_CHANGE_PREPARE; /** @since 1.20 */ +EAPI extern int ECORE_Wl2_EVENT_WINDOW_ROTATION_CHANGE_PREPARE_DONE; /** @since 1.20 */ /** * @file @@ -1077,6 +1079,7 @@ 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); /** * @defgroup Ecore_Wl2_Input_Group Wayland Library Input Functions diff --git a/src/lib/ecore_wl2/ecore_wl2.c b/src/lib/ecore_wl2/ecore_wl2.c index 01286d88fd..9390189943 100644 --- a/src/lib/ecore_wl2/ecore_wl2.c +++ b/src/lib/ecore_wl2/ecore_wl2.c @@ -41,6 +41,7 @@ EAPI int ECORE_WL2_EVENT_SEAT_KEYBOARD_REPEAT_CHANGED = 0; EAPI int ECORE_WL2_EVENT_SEAT_SELECTION = 0; EAPI int ECORE_WL2_EVENT_OUTPUT_TRANSFORM = 0; EAPI int ECORE_Wl2_EVENT_WINDOW_ROTATION_CHANGE_PREPARE = 0; +EAPI int ECORE_Wl2_EVENT_WINDOW_ROTATION_CHANGE_PREPARE_DONE = 0; EAPI int _ecore_wl2_event_window_www = -1; EAPI int _ecore_wl2_event_window_www_drag = -1; @@ -111,6 +112,8 @@ ecore_wl2_init(void) ECORE_WL2_EVENT_SEAT_SELECTION = ecore_event_type_new(); ECORE_WL2_EVENT_OUTPUT_TRANSFORM = ecore_event_type_new(); ECORE_WL2_EVENT_WINDOW_ROTATION_CHANGE_PREPARE = ecore_event_type_new(); + ECORE_WL2_EVENT_WINDOW_ROTATION_CHANGE_PREPARE_DONE = + ecore_event_type_new(); } if (!no_session_recovery) no_session_recovery = !!getenv("EFL_NO_WAYLAND_SESSION_RECOVERY"); @@ -169,7 +172,8 @@ ecore_wl2_shutdown(void) ECORE_WL2_EVENT_SEAT_KEYBOARD_REPEAT_CHANGED, ECORE_WL2_EVENT_SEAT_SELECTION, ECORE_WL2_EVENT_OUTPUT_TRANSFORM, - ECORE_WL2_EVENT_WINDOW_ROTATION_CHANGE_PREPARE); + ECORE_WL2_EVENT_WINDOW_ROTATION_CHANGE_PREPARE, + ECORE_WL2_EVENT_WINDOW_ROTATION_CHANGE_PREPARE_DONE); /* shutdown Ecore_Event */ ecore_event_shutdown(); diff --git a/src/lib/ecore_wl2/ecore_wl2_window.c b/src/lib/ecore_wl2/ecore_wl2_window.c index e4ded74569..03802a9f35 100644 --- a/src/lib/ecore_wl2/ecore_wl2_window.c +++ b/src/lib/ecore_wl2/ecore_wl2_window.c @@ -1307,3 +1307,23 @@ ecore_wl2_window_rotation_change_prepare_send(Ecore_Wl2_Window *window, int rot, ecore_event_add(ECORE_WL2_EVENT_WINDOW_ROTATION_CHANGE_PREPARE, ev, NULL, NULL); } + +EAPI void +ecore_wl2_window_rotation_change_prepare_done_send(Ecore_Wl2_Window *window, int rot) +{ + Ecore_Wl2_Event_Window_Rotation_Change_Prepare_Done *ev; + + EINA_SAFETY_ON_NULL_RETURN(window); + + ev = calloc(1, sizeof(Ecore_Wl2_Event_Window_Rotation_Change_Prepare_Done)); + if (!ev) return; + + ev->window = window; + ev->rotation = rot; + ev->w = 0; + ev->h = 0; + ev->resize = 0; + + ecore_event_add(ECORE_WL2_EVENT_WINDOW_ROTATION_CHANGE_PREPARE_DONE, + ev, NULL, NULL); +}