Evas_Layer *lay;
Eina_List *in = NULL;
- if (!e->layers) return NULL;
+ if ((!e->layers) || (e->events_frozen > 0)) return NULL;
EINA_INLIST_REVERSE_FOREACH((EINA_INLIST_GET(e->layers)), lay)
{
int norep = 0;
{
ev.cur.canvas.x = e->pointer.x;
ev.cur.canvas.y = e->pointer.y;
- _evas_event_havemap_adjust(obj, &ev.cur.canvas.x, &ev.cur.canvas.y, obj->mouse_grabbed);
- if (((evas_object_clippers_is_visible(obj)) ||
- (obj->mouse_grabbed)) &&
+ _evas_event_havemap_adjust(obj, &ev.cur.canvas.x,
+ &ev.cur.canvas.y,
+ obj->mouse_grabbed);
+ if ((e->events_frozen <= 0) &&
+ (evas_object_clippers_is_visible(obj) ||
+ obj->mouse_grabbed) &&
(!evas_event_passes_through(obj)) &&
(!evas_event_freezes_through(obj)) &&
(!obj->clip.clipees))
{
if ((px != x) || (py != y))
- {
- if (e->events_frozen <= 0)
- evas_object_event_callback_call(obj, EVAS_CALLBACK_MOUSE_MOVE, &ev);
- }
+ evas_object_event_callback_call(obj, EVAS_CALLBACK_MOUSE_MOVE, &ev);
}
else
outs = eina_list_append(outs, obj);
/* in list */
// FIXME: i don't think we need this
// evas_object_clip_recalc(obj);
- if (evas_object_is_in_output_rect(obj, x, y, 1, 1) &&
- ((evas_object_clippers_is_visible(obj)) ||
- (obj->mouse_grabbed)) &&
- (eina_list_data_find(ins, obj)) &&
+ if ((e->events_frozen <= 0) &&
+ evas_object_is_in_output_rect(obj, x, y, 1, 1) &&
+ (evas_object_clippers_is_visible(obj) ||
+ obj->mouse_grabbed) &&
+ eina_list_data_find(ins, obj) &&
(!evas_event_passes_through(obj)) &&
(!evas_event_freezes_through(obj)) &&
(!obj->clip.clipees) &&
- ((!obj->precise_is_inside) ||
- (evas_object_is_inside(obj, x, y))))
+ ((!obj->precise_is_inside) || evas_object_is_inside(obj, x, y))
+ )
{
if ((px != x) || (py != y))
{
ev.cur.canvas.x = e->pointer.x;
ev.cur.canvas.y = e->pointer.y;
_evas_event_havemap_adjust(obj, &ev.cur.canvas.x, &ev.cur.canvas.y, obj->mouse_grabbed);
- if (e->events_frozen <= 0)
- evas_object_event_callback_call(obj, EVAS_CALLBACK_MOUSE_MOVE, &ev);
+ evas_object_event_callback_call(obj, EVAS_CALLBACK_MOUSE_MOVE, &ev);
}
}
/* otherwise it has left the object */
copy = evas_event_list_copy(e->pointer.object.in);
EINA_LIST_FOREACH(copy, l, obj)
{
- if (((evas_object_clippers_is_visible(obj)) ||
- (obj->mouse_grabbed)) &&
+ if ((e->events_frozen <= 0) &&
+ (evas_object_clippers_is_visible(obj) || obj->mouse_grabbed) &&
(!evas_event_passes_through(obj)) &&
(!evas_event_freezes_through(obj)) &&
(!obj->clip.clipees))
ev.cur.canvas.xsub = ev.cur.canvas.x; // fixme - lost precision
if (y != ev.cur.canvas.y)
ev.cur.canvas.ysub = ev.cur.canvas.y; // fixme - lost precision
- if (e->events_frozen <= 0)
evas_object_event_callback_call(obj, EVAS_CALLBACK_MULTI_MOVE, &ev);
}
if (e->delete_me) break;
/* in list */
// FIXME: i don't think we need this
// evas_object_clip_recalc(obj);
- if (evas_object_is_in_output_rect(obj, x, y, 1, 1) &&
- ((evas_object_clippers_is_visible(obj)) ||
- (obj->mouse_grabbed)) &&
- (eina_list_data_find(ins, obj)) &&
+ if ((e->events_frozen <= 0) &&
+ evas_object_is_in_output_rect(obj, x, y, 1, 1) &&
+ (evas_object_clippers_is_visible(obj) ||
+ obj->mouse_grabbed) &&
+ eina_list_data_find(ins, obj) &&
(!evas_event_passes_through(obj)) &&
(!evas_event_freezes_through(obj)) &&
(!obj->clip.clipees) &&
- ((!obj->precise_is_inside) ||
- (evas_object_is_inside(obj, x, y))))
+ ((!obj->precise_is_inside) || evas_object_is_inside(obj, x, y))
+ )
{
ev.cur.canvas.x = x;
ev.cur.canvas.y = y;
ev.cur.canvas.xsub = ev.cur.canvas.x; // fixme - lost precision
if (y != ev.cur.canvas.y)
ev.cur.canvas.ysub = ev.cur.canvas.y; // fixme - lost precision
- if (e->events_frozen <= 0)
evas_object_event_callback_call(obj, EVAS_CALLBACK_MULTI_MOVE, &ev);
}
if (e->delete_me) break;
EINA_INLIST_REVERSE_FOREACH(get_layer_objects(lay), obj)
{
if (obj->delete_me) continue;
- if ((!include_pass_events_objects) && (evas_event_passes_through(obj))) continue;
+ if ((!include_pass_events_objects) &&
+ (evas_event_passes_through(obj))) continue;
if ((!include_hidden_objects) && (!obj->cur.visible)) continue;
evas_object_clip_recalc(obj);
if ((evas_object_is_in_output_rect(obj, xx, yy, 1, 1)) &&
EAPI Evas_Object *
evas_object_top_at_pointer_get(const Evas *e)
{
-//// return evas_object_top_at_xy_get(e, e->pointer.canvas_x, e->pointer.canvas_y, 0, 0);
- return evas_object_top_at_xy_get(e, e->pointer.x, e->pointer.y, 1, 1);
+ return evas_object_top_at_xy_get(e, e->pointer.x, e->pointer.y, EINA_TRUE,
+ EINA_TRUE);
}
EAPI Evas_Object *
EINA_INLIST_REVERSE_FOREACH(get_layer_objects(lay), obj)
{
if (obj->delete_me) continue;
- if ((!include_pass_events_objects) && (evas_event_passes_through(obj))) continue;
+ if ((!include_pass_events_objects) &&
+ (evas_event_passes_through(obj))) continue;
if ((!include_hidden_objects) && (!obj->cur.visible)) continue;
evas_object_clip_recalc(obj);
if ((evas_object_is_in_output_rect(obj, xx, yy, ww, hh)) &&
EINA_INLIST_REVERSE_FOREACH(get_layer_objects(lay), obj)
{
if (obj->delete_me) continue;
- if ((!include_pass_events_objects) && (evas_event_passes_through(obj))) continue;
+ if ((!include_pass_events_objects) &&
+ (evas_event_passes_through(obj))) continue;
if ((!include_hidden_objects) && (!obj->cur.visible)) continue;
evas_object_clip_recalc(obj);
if ((evas_object_is_in_output_rect(obj, xx, yy, 1, 1)) &&
EINA_INLIST_REVERSE_FOREACH(get_layer_objects(lay), obj)
{
if (obj->delete_me) continue;
- if ((!include_pass_events_objects) && (evas_event_passes_through(obj))) continue;
+ if ((!include_pass_events_objects) &&
+ (evas_event_passes_through(obj))) continue;
if ((!include_hidden_objects) && (!obj->cur.visible)) continue;
evas_object_clip_recalc(obj);
if ((evas_object_is_in_output_rect(obj, xx, yy, ww, hh)) &&
else
{
if (obj->in_layer)
- obj->layer->objects = (Evas_Object *)eina_inlist_demote(EINA_INLIST_GET(obj->layer->objects),
- EINA_INLIST_GET(obj));
+ obj->layer->objects = (Evas_Object *)eina_inlist_demote(EINA_INLIST_GET(obj->layer->objects), EINA_INLIST_GET(obj));
}
if (obj->clip.clipees)
{
obj->restack = EINA_TRUE;
evas_object_change(obj);
evas_object_inform_call_restack(obj);
- if (obj->layer->evas->events_frozen <= 0)
+ if (obj->layer->evas->events_frozen > 0) return;
+ if ((!evas_event_passes_through(obj)) && (!evas_event_freezes_through(obj)))
{
- if ((!evas_event_passes_through(obj)) &&
- (!evas_event_freezes_through(obj)))
+ if (!obj->smart.smart)
{
- if (!obj->smart.smart)
- {
- if (evas_object_is_in_output_rect(obj,
- obj->layer->evas->pointer.x,
- obj->layer->evas->pointer.y, 1, 1) &&
- obj->cur.visible)
- evas_event_feed_mouse_move(obj->layer->evas,
+ if (evas_object_is_in_output_rect(obj,
obj->layer->evas->pointer.x,
obj->layer->evas->pointer.y,
- obj->layer->evas->last_timestamp,
- NULL);
- }
+ 1, 1) && obj->cur.visible)
+ evas_event_feed_mouse_move(obj->layer->evas,
+ obj->layer->evas->pointer.x,
+ obj->layer->evas->pointer.y,
+ obj->layer->evas->last_timestamp,
+ NULL);
}
}
}
obj->restack = EINA_TRUE;
evas_object_change(obj);
evas_object_inform_call_restack(obj);
- if (obj->layer->evas->events_frozen <= 0)
+ if (obj->layer->evas->events_frozen > 0) return;
+ if ((!evas_event_passes_through(obj)) && (!evas_event_freezes_through(obj)))
{
- if ((!evas_event_passes_through(obj)) &&
- (!evas_event_freezes_through(obj)))
+ if (!obj->smart.smart)
{
- if (!obj->smart.smart)
- {
- if (evas_object_is_in_output_rect(obj,
- obj->layer->evas->pointer.x,
- obj->layer->evas->pointer.y, 1, 1) &&
- obj->cur.visible)
- evas_event_feed_mouse_move(obj->layer->evas,
+ if (evas_object_is_in_output_rect(obj,
obj->layer->evas->pointer.x,
obj->layer->evas->pointer.y,
- obj->layer->evas->last_timestamp,
- NULL);
- }
+ 1, 1) && obj->cur.visible)
+ evas_event_feed_mouse_move(obj->layer->evas,
+ obj->layer->evas->pointer.x,
+ obj->layer->evas->pointer.y,
+ obj->layer->evas->last_timestamp,
+ NULL);
}
}
}
obj->restack = EINA_TRUE;
evas_object_change(obj);
evas_object_inform_call_restack(obj);
- if (obj->layer->evas->events_frozen <= 0)
+ if (obj->layer->evas->events_frozen > 0) return;
+ if ((!evas_event_passes_through(obj)) && (!evas_event_freezes_through(obj)))
{
- if ((!evas_event_passes_through(obj)) &&
- (!evas_event_freezes_through(obj)))
+ if (!obj->smart.smart)
{
- if (!obj->smart.smart)
- {
- if (evas_object_is_in_output_rect(obj,
- obj->layer->evas->pointer.x,
- obj->layer->evas->pointer.y, 1, 1) &&
- obj->cur.visible)
- evas_event_feed_mouse_move(obj->layer->evas,
+ if (evas_object_is_in_output_rect(obj,
obj->layer->evas->pointer.x,
obj->layer->evas->pointer.y,
- obj->layer->evas->last_timestamp,
- NULL);
- }
+ 1, 1) && obj->cur.visible)
+ evas_event_feed_mouse_move(obj->layer->evas,
+ obj->layer->evas->pointer.x,
+ obj->layer->evas->pointer.y,
+ obj->layer->evas->last_timestamp,
+ NULL);
}
}
}
obj->restack = EINA_TRUE;
evas_object_change(obj);
evas_object_inform_call_restack(obj);
- if (obj->layer->evas->events_frozen <= 0)
+ if (obj->layer->evas->events_frozen > 0) return;
+ if ((!evas_event_passes_through(obj)) && (!evas_event_freezes_through(obj)))
{
- if ((!evas_event_passes_through(obj)) &&
- (!evas_event_freezes_through(obj)))
+ if (!obj->smart.smart)
{
- if (!obj->smart.smart)
- {
- if (evas_object_is_in_output_rect(obj,
- obj->layer->evas->pointer.x,
- obj->layer->evas->pointer.y, 1, 1) &&
- obj->cur.visible)
- evas_event_feed_mouse_move(obj->layer->evas,
+ if (evas_object_is_in_output_rect(obj,
obj->layer->evas->pointer.x,
obj->layer->evas->pointer.y,
- obj->layer->evas->last_timestamp,
- NULL);
- }
+ 1, 1) && obj->cur.visible)
+ evas_event_feed_mouse_move(obj->layer->evas,
+ obj->layer->evas->pointer.x,
+ obj->layer->evas->pointer.y,
+ obj->layer->evas->last_timestamp,
+ NULL);
}
}
}
static inline int
evas_event_passes_through(Evas_Object *obj)
{
- if (obj->layer->evas->events_frozen > 0) return 1;
if (obj->pass_events) return 1;
if (obj->parent_cache.pass_events_valid)
return obj->parent_cache.pass_events;