EAPI int ecore_wl2_window_active_angle_get(Ecore_Wl2_Window *window);
//
+//TIZEN_ONLY(20210721)
+/**
+ * @internal
+ *
+ * Set a parent window of Ecore_Wl2_Window
+ *
+ * This makes a relationship between parent and child. And child can choose where it is placed.
+ * If a @p place_below is true, then the window is always placed under the parent.
+ * Otherwise, it is placed on the parent.
+ *
+ * @param window The window on which to set the parent
+ * @param parent The parent window
+ * @param place_below If @p place_below is EINA_TRUE, the @p window is placed under the @p parent,
+ * Otherwise, the @p window is placed on the @p parent
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since_tizen 6.5
+ */
+EAPI void ecore_wl2_window_transient_parent_set(Ecore_Wl2_Window *window, Ecore_Wl2_Window *parent, Eina_Bool place_below);
+//
+
//TIZEN_ONLY(20171216): add ecore_wl2_window_find
/** @internal */
EAPI Ecore_Wl2_Window *ecore_wl2_window_find(unsigned int id);
//
}
+// TIZEN_ONLY(20210721) : for below child
+static void
+_ecore_wl2_window_parent_set_with_below(Ecore_Wl2_Window *window, Ecore_Wl2_Window *parent)
+{
+ window->parent = parent;
+ if (window->parent)
+ {
+ if (window->parent->surface)
+ tizen_policy_set_parent_with_below(window->display->wl.tz_policy, window->surface, window->parent->surface);
+ else
+ ERR("Fail to set parent below. Parent window's surface doesn't exist.");
+ }
+ else
+ {
+ tizen_policy_set_parent_with_below(window->display->wl.tz_policy, window->surface, NULL);
+ }
+}
+
+EAPI void
+ecore_wl2_window_transient_parent_set(Ecore_Wl2_Window *window, Ecore_Wl2_Window *parent, Eina_Bool place_below)
+{
+ EINA_SAFETY_ON_NULL_RETURN(window);
+ EINA_SAFETY_ON_NULL_RETURN(window->surface);
+ EINA_SAFETY_ON_NULL_RETURN(window->display->wl.tz_policy);
+
+ uint32_t ver = wl_proxy_get_version((struct wl_proxy *)window->display->wl.tz_policy);
+ if (ver < TIZEN_POLICY_SET_PARENT_WITH_BELOW_SINCE_VERSION)
+ {
+ ERR("ecore_wl2_window_transient_parent_set is not supported in this version:%d (required version:%d)",
+ ver, TIZEN_POLICY_SET_PARENT_WITH_BELOW_SINCE_VERSION);
+ return;
+ }
+
+ if (place_below)
+ _ecore_wl2_window_parent_set_with_below(window, parent);
+ else
+ ecore_wl2_window_parent_set(window, parent);
+}
+//
+
EAPI void
ecore_wl2_window_stack_mode_set(Ecore_Wl2_Window *window, Ecore_Wl2_Window_Stack_Mode mode)
{