* @since 1.2
*/
EAPI void ecore_wl_window_raise(Ecore_Wl_Window *win);
+EAPI void ecore_wl_window_lower(Ecore_Wl_Window *win);
EAPI void ecore_wl_window_activate(Ecore_Wl_Window *win);
EAPI void ecore_wl_window_maximized_set(Ecore_Wl_Window *win, Eina_Bool maximized);
EAPI Eina_Bool ecore_wl_window_maximized_get(Ecore_Wl_Window *win);
}
EAPI void
+ecore_wl_window_lower(Ecore_Wl_Window *win)
+{
+ LOGFN(__FILE__, __LINE__, __FUNCTION__);
+
+ if (!win) return;
+ /* FIXME: This should lower the xdg surface also */
+ if (_ecore_wl_disp->wl.tz_policy)
+ tizen_policy_lower(_ecore_wl_disp->wl.tz_policy, win->surface);
+}
+
+EAPI void
ecore_wl_window_activate(Ecore_Wl_Window *win)
{
LOGFN(__FILE__, __LINE__, __FUNCTION__);
#define TIZEN_POLICY_GET_VISIBILITY 0
#define TIZEN_POLICY_ACTIVATE 1
-#define TIZEN_POLICY_POSITION_SET 2
-#define TIZEN_POLICY_FOCUS_SKIP_SET 3
-#define TIZEN_POLICY_FOCUS_SKIP_UNSET 4
+#define TIZEN_POLICY_LOWER 2
+#define TIZEN_POLICY_POSITION_SET 3
+#define TIZEN_POLICY_FOCUS_SKIP_SET 4
+#define TIZEN_POLICY_FOCUS_SKIP_UNSET 5
static inline void
tizen_policy_set_user_data(struct tizen_policy *tizen_policy, void *user_data)
}
static inline void
+tizen_policy_lower(struct tizen_policy *tizen_policy, struct wl_surface *surface)
+{
+ wl_proxy_marshal((struct wl_proxy *) tizen_policy,
+ TIZEN_POLICY_LOWER, surface);
+}
+
+static inline void
tizen_policy_position_set(struct tizen_policy *tizen_policy, struct wl_surface *surface, int32_t x, int32_t y)
{
wl_proxy_marshal((struct wl_proxy *) tizen_policy,
&wl_surface_interface,
&wl_surface_interface,
&wl_surface_interface,
+ &wl_surface_interface,
NULL,
NULL,
&wl_surface_interface,
static const struct wl_message tizen_policy_requests[] = {
{ "get_visibility", "no", types + 1 },
{ "activate", "o", types + 3 },
- { "position_set", "oii", types + 4 },
- { "focus_skip_set", "o", types + 7 },
- { "focus_skip_unset", "o", types + 8 },
+ { "lower", "o", types + 4 },
+ { "position_set", "oii", types + 5 },
+ { "focus_skip_set", "o", types + 8 },
+ { "focus_skip_unset", "o", types + 9 },
};
WL_EXPORT const struct wl_interface tizen_policy_interface = {
"tizen_policy", 1,
- 5, tizen_policy_requests,
+ 6, tizen_policy_requests,
0, NULL,
};
}
void
+_ecore_evas_wl_common_lower(Ecore_Evas *ee)
+{
+ Ecore_Evas_Engine_Wl_Data *wdata;
+
+ LOGFN(__FILE__, __LINE__, __FUNCTION__);
+
+ if ((!ee) || (!ee->visible)) return;
+ wdata = ee->engine.data;
+ ecore_wl_window_lower(wdata->win);
+}
+
+void
_ecore_evas_wl_common_activate(Ecore_Evas *ee)
{
Ecore_Evas_Engine_Wl_Data *wdata;
_ecore_evas_wl_show,
_ecore_evas_wl_hide,
_ecore_evas_wl_common_raise,
- NULL, // lower
+ _ecore_evas_wl_common_lower,
_ecore_evas_wl_common_activate,
_ecore_evas_wl_common_title_set,
_ecore_evas_wl_common_name_class_set,
void _ecore_evas_wl_common_move(Ecore_Evas *ee, int x, int y);
void _ecore_evas_wl_common_resize(Ecore_Evas *ee, int w, int h);
void _ecore_evas_wl_common_raise(Ecore_Evas *ee);
+void _ecore_evas_wl_common_lower(Ecore_Evas *ee);
void _ecore_evas_wl_common_activate(Ecore_Evas *ee);
void _ecore_evas_wl_common_title_set(Ecore_Evas *ee, const char *title);
void _ecore_evas_wl_common_name_class_set(Ecore_Evas *ee, const char *n, const char *c);
_ecore_evas_wl_show,
_ecore_evas_wl_hide,
_ecore_evas_wl_common_raise,
- NULL, // lower
+ _ecore_evas_wl_common_lower,
_ecore_evas_wl_common_activate,
_ecore_evas_wl_common_title_set,
_ecore_evas_wl_common_name_class_set,