const Eina_Inlist *ilist,
const Eina_List *list,
Evas_Object *stop,
- int x, int y, int *no_rep, Eina_Bool source);
+ int x, int y, int *no_rep, Eina_Bool source, Eina_Bool usemap);
/* FIXME: use eina_list_clone */
static Eina_List *
static Eina_List *
_evas_event_object_list_raw_in_get_single(Evas *eo_e, Evas_Object_Protected_Data *obj, Eina_List *in, Evas_Object *stop,
- int x, int y, int *no_rep, Eina_Bool source, int spaces EINA_UNUSED)
+ int x, int y, int *no_rep, Eina_Bool source, int spaces EINA_UNUSED, Eina_Bool usemap)
{
Eina_Rectangle c;
int inside;
int fw = 0, fh = 0;
evas_output_viewport_get(eo_e, &vx, &vy, &vw, &vh);
evas_output_framespace_get(eo_e, NULL, NULL, &fw, &fh);
-
- if ((!RECTS_INTERSECT(x, y, 1, 1, vx, vy, vw - fw, vh - fh)) && (!obj->is_frame)) return in;
- //
+ if (!usemap)
+ {
+ if ((!RECTS_INTERSECT(x, y, 1, 1, vx, vy, vw - fw, vh - fh)) && (!obj->is_frame)) return in;
+ }
+ //
if ((!obj->cur->visible) && (!obj->is_event_parent)) return in;
// XXX: this below DYNAMICALLY calculates the current clip rect
stop,
obj->cur->geometry.x + obj->map->cur.map->mx,
obj->cur->geometry.y + obj->map->cur.map->my,
- &norep, source);
+ &norep, source, EINA_TRUE);
}
}
}
obj->cur->geometry.y + obj->cur->geometry.h >= y))
in = _evas_event_object_list_in_get
(eo_e, in, evas_object_smart_members_get_direct(eo_obj), NULL,
- stop, x, y, &norep, source);
+ stop, x, y, &norep, source, usemap);
}
if (norep)
{
int norep = 0;
in = _evas_event_object_list_in_get(eo_e, in,
NULL, evas_object_event_grabber_members_list(eo_obj),
- stop, x, y, &norep, source);
+ stop, x, y, &norep, source, usemap);
if (norep)
{
if (!obj->repeat_events)
const Eina_List *list,
Evas_Object *stop,
int x, int y, int *no_rep, Eina_Bool source,
- Eina_Bool must_walk_last)
+ Eina_Bool must_walk_last, Eina_Bool usemap)
{
Evas_Object_Protected_Data *obj = NULL;
DDD_STATIC int spaces = 0;
obj = _EINA_INLIST_CONTAINER(obj, EINA_INLIST_GET(obj)->prev))
{
if (obj->events->parent) continue;
- in = _evas_event_object_list_raw_in_get_single(eo_e, obj, in, stop, x, y, no_rep, source, spaces);
+ in = _evas_event_object_list_raw_in_get_single(eo_e, obj, in, stop, x, y, no_rep, source, spaces, usemap);
if (*no_rep) goto end;
}
}
EINA_LIST_REVERSE_FOREACH(list, l, obj)
{
- in = _evas_event_object_list_raw_in_get_single(eo_e, obj, in, stop, x, y, no_rep, source, spaces);
+ in = _evas_event_object_list_raw_in_get_single(eo_e, obj, in, stop, x, y, no_rep, source, spaces, usemap);
if (*no_rep) goto end;
}
}
proxy_write->src_event_in = _evas_event_object_list_raw_in_get
(eo_e, proxy_write->src_event_in,
evas_object_smart_members_get_direct(eo_src), NULL,
- NULL, ev->cur.x, ev->cur.y, &no_rep, EINA_TRUE, EINA_FALSE);
+ NULL, ev->cur.x, ev->cur.y, &no_rep, EINA_TRUE, EINA_FALSE, EINA_FALSE);
}
else if (src->is_event_parent)
{
proxy_write->src_event_in = _evas_event_object_list_raw_in_get
(eo_e, proxy_write->src_event_in,
NULL, evas_object_event_grabber_members_list(eo_src),
- NULL, ev->cur.x, ev->cur.y, &no_rep, EINA_TRUE, EINA_FALSE);
+ NULL, ev->cur.x, ev->cur.y, &no_rep, EINA_TRUE, EINA_FALSE, EINA_FALSE);
}
else
proxy_write->src_event_in = eina_list_append(proxy_write->src_event_in, eo_src);
{
int no_rep = 0;
ins = _evas_event_object_list_raw_in_get(eo_e, ins, evas_object_smart_members_get_direct(eo_src),
- NULL, NULL, ev->cur.x, ev->cur.y, &no_rep, EINA_TRUE, EINA_FALSE);
+ NULL, NULL, ev->cur.x, ev->cur.y, &no_rep, EINA_TRUE, EINA_FALSE, EINA_FALSE);
}
else if (src->is_event_parent)
{
int no_rep = 0;
ins = _evas_event_object_list_raw_in_get(eo_e, ins, NULL,
evas_object_event_grabber_members_list(eo_src),
- NULL, ev->cur.x, ev->cur.y, &no_rep, EINA_TRUE, EINA_FALSE);
+ NULL, ev->cur.x, ev->cur.y, &no_rep, EINA_TRUE, EINA_FALSE, EINA_FALSE);
}
else
ins = eina_list_append(ins, eo_src);
int no_rep = 0;
ins = _evas_event_object_list_raw_in_get
(e->evas, ins, evas_object_smart_members_get_direct(eo_src), NULL, NULL,
- ev->cur.x, ev->cur.y, &no_rep, EINA_TRUE, EINA_FALSE);
+ ev->cur.x, ev->cur.y, &no_rep, EINA_TRUE, EINA_FALSE, EINA_FALSE);
}
if (src->is_event_parent)
{
int no_rep = 0;
ins = _evas_event_object_list_raw_in_get
(e->evas, ins, NULL, evas_object_event_grabber_members_list(eo_src), NULL,
- ev->cur.x, ev->cur.y, &no_rep, EINA_TRUE, EINA_FALSE);
+ ev->cur.x, ev->cur.y, &no_rep, EINA_TRUE, EINA_FALSE, EINA_FALSE);
}
else
ins = eina_list_append(ins, eo_src);
int no_rep = 0;
ins = _evas_event_object_list_raw_in_get
(eo_e, ins, evas_object_smart_members_get_direct(eo_src), NULL, NULL,
- ev->cur.x, ev->cur.y, &no_rep, EINA_TRUE, EINA_FALSE);
+ ev->cur.x, ev->cur.y, &no_rep, EINA_TRUE, EINA_FALSE, EINA_FALSE);
}
if (src->is_event_parent)
{
int no_rep = 0;
ins = _evas_event_object_list_raw_in_get
(eo_e, ins, NULL, evas_object_event_grabber_members_list(eo_src), NULL,
- ev->cur.x, ev->cur.y, &no_rep, EINA_TRUE, EINA_FALSE);
+ ev->cur.x, ev->cur.y, &no_rep, EINA_TRUE, EINA_FALSE, EINA_FALSE);
}
else
ins = eina_list_append(ins, eo_src);
{
int no_rep = 0;
ins = _evas_event_object_list_raw_in_get(eo_e, ins, evas_object_smart_members_get_direct(eo_src),
- NULL, NULL, ev->cur.x, ev->cur.y, &no_rep, EINA_TRUE, EINA_FALSE);
+ NULL, NULL, ev->cur.x, ev->cur.y, &no_rep, EINA_TRUE, EINA_FALSE, EINA_FALSE);
}
else if (src->is_event_parent)
{
int no_rep = 0;
ins = _evas_event_object_list_raw_in_get(eo_e, ins, NULL, evas_object_event_grabber_members_list(eo_src),
- NULL, ev->cur.x, ev->cur.y, &no_rep, EINA_TRUE, EINA_FALSE);
+ NULL, ev->cur.x, ev->cur.y, &no_rep, EINA_TRUE, EINA_FALSE, EINA_FALSE);
}
else
const Eina_Inlist *ilist,
const Eina_List *list,
Evas_Object *stop,
- int x, int y, int *no_rep, Eina_Bool source)
+ int x, int y, int *no_rep, Eina_Bool source, Eina_Bool usemap)
{
return _evas_event_object_list_raw_in_get(eo_e, in, ilist, list, stop, x, y,
- no_rep, source, EINA_FALSE);
+ no_rep, source, EINA_FALSE, usemap);
}
static Eina_List *
D("############################# check layer %i\n", lay->layer);
in = _evas_event_object_list_in_get(eo_e, in,
EINA_INLIST_GET(lay->objects), NULL,
- stop, x, y, &no_rep, EINA_FALSE);
+ stop, x, y, &no_rep, EINA_FALSE, EINA_FALSE);
if (no_rep) return in;
}
return in;
ins = _evas_event_object_list_raw_in_get(eo_e, NULL,
EINA_INLIST_GET(below_obj), NULL, NULL,
pdata->seat->x, pdata->seat->y,
- &norep, EINA_FALSE, EINA_TRUE);
+ &norep, EINA_FALSE, EINA_TRUE, EINA_FALSE);
}
EINA_LIST_FOREACH(copy, l, eo_obj)