+e_comp_util_object_is_above_nocomp()

This commit is contained in:
Mike Blumenkrantz 2014-02-26 11:45:23 -05:00
parent 6a90f66cc4
commit def17d763b
2 changed files with 29 additions and 0 deletions

View File

@ -1829,3 +1829,31 @@ e_comp_client_redirect_toggle(E_Client *ec)
ec->no_shape_cut = !ec->redirected;
e_comp_shape_queue(ec->comp);
}
EAPI Eina_Bool
e_comp_util_object_is_above_nocomp(Evas_Object *obj)
{
E_Comp *comp;
Evas_Object *o;
int cl, ol;
EINA_SAFETY_ON_NULL_RETURN_VAL(obj, EINA_FALSE);
if (!evas_object_visible_get(obj)) return EINA_FALSE;
comp = e_comp_util_evas_object_comp_get(obj);
if (!comp->nocomp_ec) return EINA_FALSE;
cl = evas_object_layer_get(comp->nocomp_ec->frame);
ol = evas_object_layer_get(obj);
if (cl > ol) return EINA_FALSE;
o = evas_object_above_get(comp->nocomp_ec->frame);
if ((cl == ol) && (evas_object_layer_get(o) == cl))
{
do {
if (o == obj)
return EINA_TRUE;
o = evas_object_above_get(o);
} while (o && (evas_object_layer_get(o) == cl));
}
else
return EINA_TRUE;
return EINA_FALSE;
}

View File

@ -167,6 +167,7 @@ EAPI E_Comp *e_comp_evas_find(const Evas *e);
EAPI void e_comp_button_bindings_grab_all(void);
EAPI void e_comp_button_bindings_ungrab_all(void);
EAPI void e_comp_client_redirect_toggle(E_Client *ec);
EAPI Eina_Bool e_comp_util_object_is_above_nocomp(Evas_Object *obj);
EINTERN Evas_Object *e_comp_style_selector_create(Evas *evas, const char **source);
EAPI E_Config_Dialog *e_int_config_comp(E_Comp *comp, const char *params);