}
else if (!strcmp(interface, "tizen_policy"))
{
+ if (version >= 3)
+ client_version = 3;
+ else
+ client_version = version;
+
ewd->wl.tz_policy =
- wl_registry_bind(registry, id, &tizen_policy_interface, 1);
+ wl_registry_bind(registry, id, &tizen_policy_interface, client_version);
if (ewd->wl.tz_policy)
tizen_policy_add_listener(_ecore_wl_disp->wl.tz_policy, &_ecore_tizen_policy_listener, ewd->wl.display);
}
if (win->parent)
{
- if (win->xdg_surface)
+ if (win->xdg_surface && win->parent->xdg_surface)
xdg_surface_set_parent(win->xdg_surface, win->parent->xdg_surface);
+ else if (_ecore_wl_disp->wl.tz_policy && win->surface && win->parent->surface)
+ {
+ uint32_t ver = wl_proxy_get_version((struct wl_proxy *)_ecore_wl_disp->wl.tz_policy);
+ if (ver >= 3)
+ tizen_policy_set_parent(_ecore_wl_disp->wl.tz_policy, win->surface, win->parent->surface);
+ }
else if (win->shell_surface)
wl_shell_surface_set_transient(win->shell_surface,
win->parent->surface,
win->parent = parent;
if (win->parent)
{
- if (win->xdg_surface)
+ if (win->xdg_surface && win->parent->xdg_surface)
xdg_surface_set_parent(win->xdg_surface, win->parent->xdg_surface);
+ else if (_ecore_wl_disp->wl.tz_policy && win->surface && win->parent->surface)
+ {
+ uint32_t ver = wl_proxy_get_version((struct wl_proxy *)_ecore_wl_disp->wl.tz_policy);
+ if (ver >= 3)
+ tizen_policy_set_parent(_ecore_wl_disp->wl.tz_policy, win->surface, win->parent->surface);
+ }
else if (win->shell_surface)
wl_shell_surface_set_transient(win->shell_surface,
win->parent->surface,