}
}
+Eina_Bool
+_e_policy_stack_transient_for_check_descendant(E_Client *ec, E_Client *ancestor)
+{
+ E_Client *parent = NULL;
+ Eina_Bool is_descendant = EINA_FALSE;
+
+ if (!ec) return EINA_FALSE;
+ if (!ancestor) return EINA_FALSE;
+
+ parent = ec->parent;
+ while (parent)
+ {
+ if (parent && (eina_list_data_find(ancestor->transients, parent)))
+ {
+ is_descendant = EINA_TRUE;
+ break;
+ }
+ parent = parent->parent;
+ }
+
+ return is_descendant;
+}
+
void
_e_policy_stack_transient_for_apply(E_Client *ec)
{
}
if ((top != ec) && (eina_list_data_find(ec->parent->transients, top)))
break;
+ if (_e_policy_stack_transient_for_check_descendant(top, ec->parent))
+ break;
top = e_client_below_get(top);
}