diff --git a/src/lib/ecore_wl2/Ecore_Wl2.h b/src/lib/ecore_wl2/Ecore_Wl2.h index 9b02f1db0a..7220f35746 100644 --- a/src/lib/ecore_wl2/Ecore_Wl2.h +++ b/src/lib/ecore_wl2/Ecore_Wl2.h @@ -64,6 +64,13 @@ typedef enum ECORE_WL2_SEAT_CAPABILITIES_TOUCH = 4 } Ecore_Wl2_Seat_Capabilities; +typedef enum +{ + ECORE_WL2_WINDOW_STACK_NONE = 0, + ECORE_WL2_WINDOW_STACK_ABOVE = 1, + ECORE_WL2_WINDOW_STACK_BELOW = 2, +} Ecore_Wl2_Window_Stack_Mode; + struct _Ecore_Wl2_Event_Connection { Ecore_Wl2_Display *display; @@ -1239,6 +1246,17 @@ EAPI void ecore_wl2_window_floating_mode_set(Ecore_Wl2_Window *window, Eina_Bool */ EAPI Eina_Bool ecore_wl2_window_floating_mode_get(Ecore_Wl2_Window *window); +/** + * Set a stack mode on a given window + * + * @param window + * @param mode + * + * @ingroup Ecore_Wl2_Window_Group + * @since 1.20 + */ +EAPI void ecore_wl2_window_stack_mode_set(Ecore_Wl2_Window *window, Ecore_Wl2_Window_Stack_Mode mode); + /** * @defgroup Ecore_Wl2_Input_Group Wayland Library Input Functions * @ingroup Ecore_Wl2_Group diff --git a/src/lib/ecore_wl2/ecore_wl2_private.h b/src/lib/ecore_wl2/ecore_wl2_private.h index da7a8ae3ef..e3f016dc3b 100644 --- a/src/lib/ecore_wl2/ecore_wl2_private.h +++ b/src/lib/ecore_wl2/ecore_wl2_private.h @@ -175,6 +175,7 @@ struct _Ecore_Wl2_Window Eina_Rectangle input_rect; Ecore_Wl2_Window_Type type; + Ecore_Wl2_Window_Stack_Mode stack_mode; Eina_Inlist *subsurfs; Eina_Inlist *supported_aux_hints; diff --git a/src/lib/ecore_wl2/ecore_wl2_window.c b/src/lib/ecore_wl2/ecore_wl2_window.c index 13e9c9eec0..bda93bda5e 100644 --- a/src/lib/ecore_wl2/ecore_wl2_window.c +++ b/src/lib/ecore_wl2/ecore_wl2_window.c @@ -1491,3 +1491,10 @@ ecore_wl2_window_floating_mode_get(Ecore_Wl2_Window *window) EINA_SAFETY_ON_NULL_RETURN_VAL(window, EINA_FALSE); return window->floating; } + +EAPI void +ecore_wl2_window_stack_mode_set(Ecore_Wl2_Window *window, Ecore_Wl2_Window_Stack_Mode mode) +{ + EINA_SAFETY_ON_NULL_RETURN(window); + window->stack_mode = mode; +}