From 2653bee7e6b6909c267c7db5d26f8838e4d19206 Mon Sep 17 00:00:00 2001 From: Doyoun Kang Date: Fri, 3 Sep 2021 13:19:04 +0900 Subject: [PATCH] ecore_wl2: add code to handle below_child If the child window wants to place under the parent window, then we call the tizen_policy_set_parent_with_below(). Otherwise, we call the tizen_policy_set_parent(). @tizen_only Change-Id: I8a8e8887bae52624bac763b790db940abeef8f79 Signed-off-by: Doyoun Kang --- src/lib/ecore_wl2/ecore_wl2_private.h | 4 ++++ src/lib/ecore_wl2/ecore_wl2_window.c | 14 +++++++++++++- src/lib/ecore_wl2/window_v6.x | 6 ++++++ 3 files changed, 23 insertions(+), 1 deletion(-) diff --git a/src/lib/ecore_wl2/ecore_wl2_private.h b/src/lib/ecore_wl2/ecore_wl2_private.h index 21dc5e7..fc16d42 100644 --- a/src/lib/ecore_wl2/ecore_wl2_private.h +++ b/src/lib/ecore_wl2/ecore_wl2_private.h @@ -444,6 +444,10 @@ struct _Ecore_Wl2_Window // TIZEN_ONLY(20210330): for maintain internal aux hint list Eina_List *aux_hints; // + + // TIZEN_ONLY(20210903): for transient_for below + Eina_Bool below_child; + // }; struct _Ecore_Wl2_Output diff --git a/src/lib/ecore_wl2/ecore_wl2_window.c b/src/lib/ecore_wl2/ecore_wl2_window.c index 3e4e096..6c376b5 100644 --- a/src/lib/ecore_wl2/ecore_wl2_window.c +++ b/src/lib/ecore_wl2/ecore_wl2_window.c @@ -950,7 +950,15 @@ _ecore_wl2_window_tz_ext_init(Ecore_Wl2_Window *window) else if (window->display->wl.tz_policy && window->surface && window->parent->surface) { uint32_t ver = wl_proxy_get_version((struct wl_proxy *)window->display->wl.tz_policy); - if (ver >= 3) + if (ver >= TIZEN_POLICY_SET_PARENT_WITH_BELOW_SINCE_VERSION) + { + // for transient_for below + if (window->below_child) + tizen_policy_set_parent_with_below(window->display->wl.tz_policy, window->surface, window->parent->surface); + else + tizen_policy_set_parent(window->display->wl.tz_policy, window->surface, window->parent->surface); + } + else if (ver >= 3) tizen_policy_set_parent(window->display->wl.tz_policy, window->surface, window->parent->surface); } } @@ -1606,6 +1614,9 @@ ecore_wl2_window_parent_set(Ecore_Wl2_Window *window, Ecore_Wl2_Window *parent) { EINA_SAFETY_ON_NULL_RETURN(window); window->parent = parent; +// TIZEN_ONLY(20210903): for transient_for below + window->below_child = EINA_FALSE; +// // TIZEN_ONLY(20171114) if (window->parent) @@ -1638,6 +1649,7 @@ static void _ecore_wl2_window_parent_set_with_below(Ecore_Wl2_Window *window, Ecore_Wl2_Window *parent) { window->parent = parent; + window->below_child = EINA_TRUE; if (window->parent) { if (window->parent->surface) diff --git a/src/lib/ecore_wl2/window_v6.x b/src/lib/ecore_wl2/window_v6.x index ca2c68a..f06acd0 100644 --- a/src/lib/ecore_wl2/window_v6.x +++ b/src/lib/ecore_wl2/window_v6.x @@ -188,11 +188,17 @@ _window_v6_shell_surface_create(Ecore_Wl2_Window *window) window->zxdg_set_min_size = zxdg_toplevel_v6_set_min_size; window->zxdg_set_max_size = zxdg_toplevel_v6_set_max_size; +// TIZEN_ONLY(20210903): for transient_for below + if (window->parent) + ecore_wl2_window_transient_parent_set(window, window->parent, window->below_child); + /* if (window->parent) ptop = window->parent->zxdg_toplevel; if (ptop) zxdg_toplevel_v6_set_parent(window->zxdg_toplevel, ptop); + */ +// if (window->set_config.maximized) zxdg_toplevel_v6_set_maximized(window->zxdg_toplevel); -- 2.7.4