forked from enlightenment/efl
propogate pass_events to sub-objects of smart objects...
SVN revision: 10503
This commit is contained in:
parent
e06d785bbb
commit
59419c9aa4
|
@ -2,6 +2,14 @@
|
|||
#include "evas_private.h"
|
||||
#include "Evas.h"
|
||||
|
||||
int
|
||||
evas_event_passes_through(Evas_Object *obj)
|
||||
{
|
||||
if (obj->pass_events) return 1;
|
||||
if (obj->smart.parent) return evas_event_passes_through(obj->smart.parent);
|
||||
return 0;
|
||||
}
|
||||
|
||||
Evas_List *
|
||||
evas_event_objects_event_list(Evas *e, Evas_Object *stop, int x, int y)
|
||||
{
|
||||
|
@ -21,7 +29,7 @@ evas_event_objects_event_list(Evas *e, Evas_Object *stop, int x, int y)
|
|||
|
||||
obj = (Evas_Object *)l2;
|
||||
if (obj == stop) goto done;
|
||||
if ((!obj->pass_events) && (!obj->smart.smart))
|
||||
if ((!evas_event_passes_through(obj)) && (!obj->smart.smart))
|
||||
{
|
||||
evas_object_clip_recalc(obj);
|
||||
if ((evas_object_is_in_output_rect(obj, x, y, 1, 1)) &&
|
||||
|
@ -363,7 +371,7 @@ evas_event_feed_mouse_move_data(Evas *e, int x, int y, const void *data)
|
|||
obj = l->data;
|
||||
if ((obj->cur.visible) &&
|
||||
(evas_object_clippers_is_visible(obj)) &&
|
||||
(!obj->pass_events) &&
|
||||
(!evas_event_passes_through(obj)) &&
|
||||
(!obj->smart.smart) &&
|
||||
(!obj->clip.clipees))
|
||||
{
|
||||
|
@ -436,7 +444,7 @@ evas_event_feed_mouse_move_data(Evas *e, int x, int y, const void *data)
|
|||
(obj->cur.visible) &&
|
||||
(evas_object_clippers_is_visible(obj)) &&
|
||||
(evas_list_find(ins, obj)) &&
|
||||
(!obj->pass_events) &&
|
||||
(!evas_event_passes_through(obj)) &&
|
||||
(!obj->smart.smart) &&
|
||||
(!obj->clip.clipees))
|
||||
{
|
||||
|
|
|
@ -103,7 +103,7 @@ evas_object_line_xy_set(Evas_Object *obj, Evas_Coord x1, Evas_Coord y1, Evas_Coo
|
|||
MAGIC_CHECK_END();
|
||||
if ((x1 == o->cur.x1) && (y1 == o->cur.y1) &&
|
||||
(x2 == o->cur.x2) && (y2 == o->cur.y2)) return;
|
||||
if (!obj->pass_events)
|
||||
if (!evas_event_passes_through(obj))
|
||||
was = evas_object_is_in_output_rect(obj,
|
||||
obj->layer->evas->pointer.x,
|
||||
obj->layer->evas->pointer.y, 1, 1);
|
||||
|
@ -142,7 +142,7 @@ evas_object_line_xy_set(Evas_Object *obj, Evas_Coord x1, Evas_Coord y1, Evas_Coo
|
|||
is = evas_object_is_in_output_rect(obj,
|
||||
obj->layer->evas->pointer.x,
|
||||
obj->layer->evas->pointer.y, 1, 1);
|
||||
if (!obj->pass_events)
|
||||
if (!evas_event_passes_through(obj))
|
||||
{
|
||||
if ((is ^ was) && obj->cur.visible)
|
||||
evas_event_feed_mouse_move(obj->layer->evas,
|
||||
|
|
|
@ -457,7 +457,7 @@ evas_object_move(Evas_Object *obj, Evas_Coord x, Evas_Coord y)
|
|||
evas_object_inform_call_move(obj);
|
||||
return;
|
||||
}
|
||||
if (!obj->pass_events)
|
||||
if (!evas_event_passes_through(obj))
|
||||
was = evas_object_is_in_output_rect(obj,
|
||||
obj->layer->evas->pointer.x,
|
||||
obj->layer->evas->pointer.y, 1, 1);
|
||||
|
@ -466,7 +466,7 @@ evas_object_move(Evas_Object *obj, Evas_Coord x, Evas_Coord y)
|
|||
obj->cur.cache.geometry.validity = 0;
|
||||
evas_object_change(obj);
|
||||
evas_object_recalc_clippees(obj);
|
||||
if (!obj->pass_events)
|
||||
if (!evas_event_passes_through(obj))
|
||||
{
|
||||
if (!obj->smart.smart)
|
||||
{
|
||||
|
@ -510,7 +510,7 @@ evas_object_resize(Evas_Object *obj, Evas_Coord w, Evas_Coord h)
|
|||
evas_object_inform_call_resize(obj);
|
||||
return;
|
||||
}
|
||||
if (!obj->pass_events)
|
||||
if (!evas_event_passes_through(obj))
|
||||
was = evas_object_is_in_output_rect(obj,
|
||||
obj->layer->evas->pointer.x,
|
||||
obj->layer->evas->pointer.y, 1, 1);
|
||||
|
@ -519,7 +519,7 @@ evas_object_resize(Evas_Object *obj, Evas_Coord w, Evas_Coord h)
|
|||
obj->cur.cache.geometry.validity = 0;
|
||||
evas_object_change(obj);
|
||||
evas_object_recalc_clippees(obj);
|
||||
if (!obj->pass_events)
|
||||
if (!evas_event_passes_through(obj))
|
||||
{
|
||||
if (!obj->smart.smart)
|
||||
{
|
||||
|
@ -585,7 +585,7 @@ evas_object_show(Evas_Object *obj)
|
|||
obj->cur.visible = 1;
|
||||
evas_object_change(obj);
|
||||
evas_object_recalc_clippees(obj);
|
||||
if (!obj->pass_events)
|
||||
if (!evas_event_passes_through(obj))
|
||||
{
|
||||
if (!obj->smart.smart)
|
||||
{
|
||||
|
@ -627,7 +627,7 @@ evas_object_hide(Evas_Object *obj)
|
|||
obj->cur.visible = 0;
|
||||
evas_object_change(obj);
|
||||
evas_object_recalc_clippees(obj);
|
||||
if (!obj->pass_events)
|
||||
if (!evas_event_passes_through(obj))
|
||||
{
|
||||
if (!obj->smart.smart)
|
||||
{
|
||||
|
@ -782,7 +782,7 @@ evas_object_top_at_xy_get(Evas *e, Evas_Coord x, Evas_Coord y, Evas_Bool include
|
|||
|
||||
obj = (Evas_Object *)l2;
|
||||
if (obj->delete_me) continue;
|
||||
if ((!include_pass_events_objects) && (obj->pass_events)) 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)) &&
|
||||
|
@ -838,7 +838,7 @@ evas_object_top_in_rectangle_get(Evas *e, Evas_Coord x, Evas_Coord y, Evas_Coord
|
|||
|
||||
obj = (Evas_Object *)l2;
|
||||
if (obj->delete_me) continue;
|
||||
if ((!include_pass_events_objects) && (obj->pass_events)) 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)) &&
|
||||
|
@ -879,7 +879,7 @@ evas_objects_at_xy_get(Evas *e, Evas_Coord x, Evas_Coord y, Evas_Bool include_pa
|
|||
|
||||
obj = (Evas_Object *)l2;
|
||||
if (obj->delete_me) continue;
|
||||
if ((!include_pass_events_objects) && (obj->pass_events)) 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)) &&
|
||||
|
@ -924,7 +924,7 @@ evas_objects_in_rectangle_get(Evas *e, Evas_Coord x, Evas_Coord y, Evas_Coord w,
|
|||
|
||||
obj = (Evas_Object *)l2;
|
||||
if (obj->delete_me) continue;
|
||||
if ((!include_pass_events_objects) && (obj->pass_events)) 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)) &&
|
||||
|
|
|
@ -99,7 +99,7 @@ evas_object_polygon_point_add(Evas_Object *obj, Evas_Coord x, Evas_Coord y)
|
|||
MAGIC_CHECK(o, Evas_Object_Polygon, MAGIC_OBJ_POLYGON);
|
||||
return;
|
||||
MAGIC_CHECK_END();
|
||||
if (!obj->pass_events)
|
||||
if (!evas_event_passes_through(obj))
|
||||
was = evas_object_is_in_output_rect(obj,
|
||||
obj->layer->evas->pointer.x,
|
||||
obj->layer->evas->pointer.y, 1, 1);
|
||||
|
@ -139,7 +139,7 @@ evas_object_polygon_point_add(Evas_Object *obj, Evas_Coord x, Evas_Coord y)
|
|||
is = evas_object_is_in_output_rect(obj,
|
||||
obj->layer->evas->pointer.x,
|
||||
obj->layer->evas->pointer.y, 1, 1);
|
||||
if (!obj->pass_events)
|
||||
if (!evas_event_passes_through(obj))
|
||||
{
|
||||
if ((is ^ was) && obj->cur.visible)
|
||||
evas_event_feed_mouse_move(obj->layer->evas,
|
||||
|
|
|
@ -578,7 +578,7 @@ evas_object_text_font_set(Evas_Object *obj, const char *font, Evas_Font_Size siz
|
|||
same_font = 1;
|
||||
if (size == o->cur.size) return;
|
||||
}
|
||||
if (!obj->pass_events)
|
||||
if (!evas_event_passes_through(obj))
|
||||
was = evas_object_is_in_output_rect(obj,
|
||||
obj->layer->evas->pointer.x,
|
||||
obj->layer->evas->pointer.y, 1, 1);
|
||||
|
@ -705,7 +705,7 @@ evas_object_text_font_set(Evas_Object *obj, const char *font, Evas_Font_Size siz
|
|||
o->changed = 1;
|
||||
evas_object_change(obj);
|
||||
evas_object_coords_recalc(obj);
|
||||
if (!obj->pass_events)
|
||||
if (!evas_event_passes_through(obj))
|
||||
{
|
||||
is = evas_object_is_in_output_rect(obj,
|
||||
obj->layer->evas->pointer.x,
|
||||
|
|
|
@ -73,7 +73,7 @@ evas_object_raise(Evas_Object *obj)
|
|||
}
|
||||
obj->restack = 1;
|
||||
evas_object_change(obj);
|
||||
if (!obj->pass_events)
|
||||
if (!evas_event_passes_through(obj))
|
||||
{
|
||||
if (!obj->smart.smart)
|
||||
{
|
||||
|
@ -119,7 +119,7 @@ evas_object_lower(Evas_Object *obj)
|
|||
}
|
||||
obj->restack = 1;
|
||||
evas_object_change(obj);
|
||||
if (!obj->pass_events)
|
||||
if (!evas_event_passes_through(obj))
|
||||
{
|
||||
if (!obj->smart.smart)
|
||||
{
|
||||
|
@ -173,7 +173,7 @@ evas_object_stack_above(Evas_Object *obj, Evas_Object *above)
|
|||
}
|
||||
obj->restack = 1;
|
||||
evas_object_change(obj);
|
||||
if (!obj->pass_events)
|
||||
if (!evas_event_passes_through(obj))
|
||||
{
|
||||
if (!obj->smart.smart)
|
||||
{
|
||||
|
@ -227,7 +227,7 @@ evas_object_stack_below(Evas_Object *obj, Evas_Object *below)
|
|||
}
|
||||
obj->restack = 1;
|
||||
evas_object_change(obj);
|
||||
if (!obj->pass_events)
|
||||
if (!evas_event_passes_through(obj))
|
||||
{
|
||||
if (!obj->smart.smart)
|
||||
{
|
||||
|
|
|
@ -127,8 +127,10 @@ evas_common_convert_yuv_420p_601_rgba(DATA8 **src, DATA8 *dst, int w, int h)
|
|||
#ifndef BUILD_MMX
|
||||
mmx = 0;
|
||||
#endif
|
||||
if (sse) _evas_yv12torgb_sse(src, dst, w, h);
|
||||
else if (mmx) _evas_yv12torgb_mmx(src, dst, w, h);
|
||||
if (evas_common_cpu_has_feature(CPU_FEATURE_MMX2))
|
||||
_evas_yv12torgb_sse(src, dst, w, h);
|
||||
else if (evas_common_cpu_has_feature(CPU_FEATURE_MMX))
|
||||
_evas_yv12torgb_mmx(src, dst, w, h);
|
||||
#ifdef BUILD_ALTIVEC
|
||||
if (evas_common_cpu_has_feature(CPU_FEATURE_ALTIVEC))
|
||||
_evas_yv12torgb_altivec(src, dst, w, h);
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
|
||||
#include "evas_blend_ops.h"
|
||||
|
||||
extern DATA8 *_evas_pow_lut;
|
||||
extern const DATA16 _evas_const_c1[4];
|
||||
|
||||
static DATA32 **scale_calc_y_points(DATA32 *src, int sw, int sh, int dh);
|
||||
|
|
|
@ -578,6 +578,7 @@ void evas_object_recalc_clippees(Evas_Object *obj);
|
|||
int evas_object_clippers_is_visible(Evas_Object *obj);
|
||||
int evas_object_clippers_was_visible(Evas_Object *obj);
|
||||
void evas_object_event_callback_call(Evas_Object *obj, Evas_Callback_Type type, void *event_info);
|
||||
int evas_event_passes_through(Evas_Object *obj);
|
||||
Evas_List *evas_event_objects_event_list(Evas *e, Evas_Object *stop, int x, int y);
|
||||
int evas_file_path_is_full_path(char *path);
|
||||
char *evas_file_path_join(char *path, char *end);
|
||||
|
|
Loading…
Reference in New Issue