ECORE_WL_INDICATOR_TRANSPARENT
};
+enum _Ecore_Wl_Window_Stack_Mode
+{
+ ECORE_WL_WINDOW_STACK_NONE = 0,
+ ECORE_WL_WINDOW_STACK_ABOVE = 1,
+ ECORE_WL_WINDOW_STACK_BELOW = 2,
+};
+
typedef enum _Ecore_Wl_Window_Type Ecore_Wl_Window_Type;
typedef enum _Ecore_Wl_Window_Buffer_Type Ecore_Wl_Window_Buffer_Type;
typedef enum _Ecore_Wl_Window_Keygrab_Mode Ecore_Wl_Window_Keygrab_Mode;
typedef enum _Ecore_Wl_Indicator_State Ecore_Wl_Indicator_State;
typedef enum _Ecore_Wl_Clipboard_State Ecore_Wl_Clipboard_State;
typedef enum _Ecore_Wl_Indicator_Opacity_Mode Ecore_Wl_Indicator_Opacity_Mode;
+typedef enum _Ecore_Wl_Window_Stack_Mode Ecore_Wl_Window_Stack_Mode;
/** @since 1.7.6 */
struct _Ecore_Wl_Global
EAPI Ecore_Wl_Input *ecore_wl_window_keyboard_get(Ecore_Wl_Window *win);
+EAPI void ecore_wl_window_stack_mode_set(Ecore_Wl_Window *win, Ecore_Wl_Window_Stack_Mode mode);
+
/**
* Returns a wl_surface with no association to any wl_shell_surface.
*
}
EAPI void
+ecore_wl_window_stack_mode_set(Ecore_Wl_Window *win, Ecore_Wl_Window_Stack_Mode mode)
+{
+ LOGFN(__FILE__, __LINE__, __FUNCTION__);
+
+ if (!win) return;
+
+ if ((win->surface) && (_ecore_wl_disp->wl.tz_policy))
+ tizen_policy_set_stack_mode(_ecore_wl_disp->wl.tz_policy, win->surface, mode);
+}
+
+EAPI void
ecore_wl_window_rotation_preferred_rotation_set(Ecore_Wl_Window *win, int rot)
{
enum tizen_rotation_angle angle = TIZEN_ROTATION_ANGLE_NONE;
}
}
+static void
+_ecore_evas_wl_layer_update(Ecore_Evas *ee)
+{
+ Ecore_Evas_Engine_Wl_Data *wdata = ee->engine.data;
+
+ if (ee->prop.layer < 3)
+ {
+ if ((wdata->state.above) || (!wdata->state.below))
+ {
+ wdata->state.above = 0;
+ wdata->state.below = 1;
+ ecore_wl_window_stack_mode_set(wdata->win, ECORE_WL_WINDOW_STACK_BELOW);
+ }
+ }
+ else if (ee->prop.layer > 5)
+ {
+ if ((!wdata->state.above) || (wdata->state.below))
+ {
+ wdata->state.above = 1;
+ wdata->state.below = 0;
+ ecore_wl_window_stack_mode_set(wdata->win, ECORE_WL_WINDOW_STACK_ABOVE);
+ }
+ }
+ else
+ {
+ if ((wdata->state.above) || (wdata->state.below))
+ {
+ wdata->state.above = 0;
+ wdata->state.below = 0;
+ ecore_wl_window_stack_mode_set(wdata->win, ECORE_WL_WINDOW_STACK_NONE);
+ }
+ }
+}
+
void
_ecore_evas_wl_common_layer_set(Ecore_Evas *ee, int layer)
{
if (layer < 1) layer = 1;
else if (layer > 255) layer = 255;
ee->prop.layer = layer;
+
+ _ecore_evas_wl_layer_update(ee);
_ecore_evas_wl_common_state_update(ee);
}
unsigned char done : 1;
Ecore_Job *manual_mode_job;
} wm_rot;
+ struct
+ {
+ unsigned char above : 1;
+ unsigned char below : 1;
+ } state;
struct wl_callback *anim_callback;
};