evas - supplemented more cases for object_freeze_events completion.
SVN revision: 64564
This commit is contained in:
parent
160370b0e6
commit
9db17a253c
|
@ -579,6 +579,7 @@ evas_event_feed_mouse_move(Evas *e, int x, int y, unsigned int timestamp, const
|
||||||
if (((evas_object_clippers_is_visible(obj)) ||
|
if (((evas_object_clippers_is_visible(obj)) ||
|
||||||
(obj->mouse_grabbed)) &&
|
(obj->mouse_grabbed)) &&
|
||||||
(!evas_event_passes_through(obj)) &&
|
(!evas_event_passes_through(obj)) &&
|
||||||
|
(!evas_event_freezes_through(obj)) &&
|
||||||
(!obj->clip.clipees))
|
(!obj->clip.clipees))
|
||||||
{
|
{
|
||||||
if ((px != x) || (py != y))
|
if ((px != x) || (py != y))
|
||||||
|
@ -699,6 +700,7 @@ evas_event_feed_mouse_move(Evas *e, int x, int y, unsigned int timestamp, const
|
||||||
(obj->mouse_grabbed)) &&
|
(obj->mouse_grabbed)) &&
|
||||||
(eina_list_data_find(ins, obj)) &&
|
(eina_list_data_find(ins, obj)) &&
|
||||||
(!evas_event_passes_through(obj)) &&
|
(!evas_event_passes_through(obj)) &&
|
||||||
|
(!evas_event_freezes_through(obj)) &&
|
||||||
(!obj->clip.clipees) &&
|
(!obj->clip.clipees) &&
|
||||||
((!obj->precise_is_inside) ||
|
((!obj->precise_is_inside) ||
|
||||||
(evas_object_is_inside(obj, x, y))))
|
(evas_object_is_inside(obj, x, y))))
|
||||||
|
@ -1088,6 +1090,7 @@ evas_event_feed_multi_move(Evas *e,
|
||||||
if (((evas_object_clippers_is_visible(obj)) ||
|
if (((evas_object_clippers_is_visible(obj)) ||
|
||||||
(obj->mouse_grabbed)) &&
|
(obj->mouse_grabbed)) &&
|
||||||
(!evas_event_passes_through(obj)) &&
|
(!evas_event_passes_through(obj)) &&
|
||||||
|
(!evas_event_freezes_through(obj)) &&
|
||||||
(!obj->clip.clipees))
|
(!obj->clip.clipees))
|
||||||
{
|
{
|
||||||
ev.cur.canvas.x = x;
|
ev.cur.canvas.x = x;
|
||||||
|
@ -1148,6 +1151,7 @@ evas_event_feed_multi_move(Evas *e,
|
||||||
(obj->mouse_grabbed)) &&
|
(obj->mouse_grabbed)) &&
|
||||||
(eina_list_data_find(ins, obj)) &&
|
(eina_list_data_find(ins, obj)) &&
|
||||||
(!evas_event_passes_through(obj)) &&
|
(!evas_event_passes_through(obj)) &&
|
||||||
|
(!evas_event_freezes_through(obj)) &&
|
||||||
(!obj->clip.clipees) &&
|
(!obj->clip.clipees) &&
|
||||||
((!obj->precise_is_inside) ||
|
((!obj->precise_is_inside) ||
|
||||||
(evas_object_is_inside(obj, x, y))))
|
(evas_object_is_inside(obj, x, y))))
|
||||||
|
|
|
@ -12,10 +12,10 @@ struct _Evas_Object_Line
|
||||||
DATA32 magic;
|
DATA32 magic;
|
||||||
struct {
|
struct {
|
||||||
struct {
|
struct {
|
||||||
int x1, y1, x2, y2;
|
int x1, y1, x2, y2;
|
||||||
struct {
|
struct {
|
||||||
Evas_Coord w, h;
|
Evas_Coord w, h;
|
||||||
} object;
|
} object;
|
||||||
} cache;
|
} cache;
|
||||||
Evas_Coord x1, y1, x2, y2;
|
Evas_Coord x1, y1, x2, y2;
|
||||||
} cur, prev;
|
} cur, prev;
|
||||||
|
@ -106,30 +106,32 @@ evas_object_line_xy_set(Evas_Object *obj, Evas_Coord x1, Evas_Coord y1, Evas_Coo
|
||||||
(x2 == o->cur.x2) && (y2 == o->cur.y2)) return;
|
(x2 == o->cur.x2) && (y2 == o->cur.y2)) return;
|
||||||
if (obj->layer->evas->events_frozen <= 0)
|
if (obj->layer->evas->events_frozen <= 0)
|
||||||
{
|
{
|
||||||
if (!evas_event_passes_through(obj))
|
if (!evas_event_passes_through(obj) &&
|
||||||
was = evas_object_is_in_output_rect(obj,
|
!evas_event_freezes_through(obj))
|
||||||
obj->layer->evas->pointer.x,
|
was = evas_object_is_in_output_rect(obj,
|
||||||
obj->layer->evas->pointer.y, 1, 1);
|
obj->layer->evas->pointer.x,
|
||||||
|
obj->layer->evas->pointer.y,
|
||||||
|
1, 1);
|
||||||
}
|
}
|
||||||
if (x1 < x2)
|
if (x1 < x2)
|
||||||
{
|
{
|
||||||
min_x = x1;
|
min_x = x1;
|
||||||
max_x = x2;
|
max_x = x2;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
min_x = x2;
|
min_x = x2;
|
||||||
max_x = x1;
|
max_x = x1;
|
||||||
}
|
}
|
||||||
if (y1 < y2)
|
if (y1 < y2)
|
||||||
{
|
{
|
||||||
min_y = y1;
|
min_y = y1;
|
||||||
max_y = y2;
|
max_y = y2;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
min_y = y2;
|
min_y = y2;
|
||||||
max_y = y1;
|
max_y = y1;
|
||||||
}
|
}
|
||||||
obj->cur.geometry.x = min_x;
|
obj->cur.geometry.x = min_x;
|
||||||
obj->cur.geometry.y = min_y;
|
obj->cur.geometry.y = min_y;
|
||||||
|
@ -146,18 +148,19 @@ evas_object_line_xy_set(Evas_Object *obj, Evas_Coord x1, Evas_Coord y1, Evas_Coo
|
||||||
evas_object_clip_dirty(obj);
|
evas_object_clip_dirty(obj);
|
||||||
if (obj->layer->evas->events_frozen <= 0)
|
if (obj->layer->evas->events_frozen <= 0)
|
||||||
{
|
{
|
||||||
is = evas_object_is_in_output_rect(obj,
|
is = evas_object_is_in_output_rect(obj,
|
||||||
obj->layer->evas->pointer.x,
|
obj->layer->evas->pointer.x,
|
||||||
obj->layer->evas->pointer.y, 1, 1);
|
obj->layer->evas->pointer.y, 1, 1);
|
||||||
if (!evas_event_passes_through(obj))
|
if (!evas_event_passes_through(obj) &&
|
||||||
{
|
!evas_event_freezes_through(obj))
|
||||||
if ((is ^ was) && obj->cur.visible)
|
{
|
||||||
evas_event_feed_mouse_move(obj->layer->evas,
|
if ((is ^ was) && obj->cur.visible)
|
||||||
obj->layer->evas->pointer.x,
|
evas_event_feed_mouse_move(obj->layer->evas,
|
||||||
obj->layer->evas->pointer.y,
|
obj->layer->evas->pointer.x,
|
||||||
obj->layer->evas->last_timestamp,
|
obj->layer->evas->pointer.y,
|
||||||
NULL);
|
obj->layer->evas->last_timestamp,
|
||||||
}
|
NULL);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
evas_object_inform_call_move(obj);
|
evas_object_inform_call_move(obj);
|
||||||
evas_object_inform_call_resize(obj);
|
evas_object_inform_call_resize(obj);
|
||||||
|
|
|
@ -448,7 +448,7 @@ evas_object_del(Evas_Object *obj)
|
||||||
EAPI void
|
EAPI void
|
||||||
evas_object_move(Evas_Object *obj, Evas_Coord x, Evas_Coord y)
|
evas_object_move(Evas_Object *obj, Evas_Coord x, Evas_Coord y)
|
||||||
{
|
{
|
||||||
int is, was = 0, pass = 0;
|
int is, was = 0, pass = 0, freeze = 0;
|
||||||
|
|
||||||
MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
|
MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
|
||||||
return;
|
return;
|
||||||
|
@ -464,7 +464,8 @@ evas_object_move(Evas_Object *obj, Evas_Coord x, Evas_Coord y)
|
||||||
if (obj->layer->evas->events_frozen <= 0)
|
if (obj->layer->evas->events_frozen <= 0)
|
||||||
{
|
{
|
||||||
pass = evas_event_passes_through(obj);
|
pass = evas_event_passes_through(obj);
|
||||||
if (!pass)
|
freeze = evas_event_freezes_through(obj);
|
||||||
|
if ((!pass) && (!freeze))
|
||||||
was = evas_object_is_in_output_rect(obj,
|
was = evas_object_is_in_output_rect(obj,
|
||||||
obj->layer->evas->pointer.x,
|
obj->layer->evas->pointer.x,
|
||||||
obj->layer->evas->pointer.y, 1, 1);
|
obj->layer->evas->pointer.y, 1, 1);
|
||||||
|
@ -507,7 +508,7 @@ evas_object_move(Evas_Object *obj, Evas_Coord x, Evas_Coord y)
|
||||||
EAPI void
|
EAPI void
|
||||||
evas_object_resize(Evas_Object *obj, Evas_Coord w, Evas_Coord h)
|
evas_object_resize(Evas_Object *obj, Evas_Coord w, Evas_Coord h)
|
||||||
{
|
{
|
||||||
int is, was = 0, pass = 0;
|
int is, was = 0, pass = 0, freeze =0;
|
||||||
|
|
||||||
MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
|
MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
|
||||||
return;
|
return;
|
||||||
|
@ -524,7 +525,8 @@ evas_object_resize(Evas_Object *obj, Evas_Coord w, Evas_Coord h)
|
||||||
if (obj->layer->evas->events_frozen <= 0)
|
if (obj->layer->evas->events_frozen <= 0)
|
||||||
{
|
{
|
||||||
pass = evas_event_passes_through(obj);
|
pass = evas_event_passes_through(obj);
|
||||||
if (!pass)
|
freeze = evas_event_freezes_through(obj);
|
||||||
|
if ((!pass) && (!freeze))
|
||||||
was = evas_object_is_in_output_rect(obj,
|
was = evas_object_is_in_output_rect(obj,
|
||||||
obj->layer->evas->pointer.x,
|
obj->layer->evas->pointer.x,
|
||||||
obj->layer->evas->pointer.y, 1, 1);
|
obj->layer->evas->pointer.y, 1, 1);
|
||||||
|
@ -858,7 +860,8 @@ evas_object_show(Evas_Object *obj)
|
||||||
{
|
{
|
||||||
evas_object_clip_across_clippees_check(obj);
|
evas_object_clip_across_clippees_check(obj);
|
||||||
evas_object_recalc_clippees(obj);
|
evas_object_recalc_clippees(obj);
|
||||||
if (!evas_event_passes_through(obj))
|
if ((!evas_event_passes_through(obj)) &&
|
||||||
|
(!evas_event_freezes_through(obj)))
|
||||||
{
|
{
|
||||||
if (!obj->smart.smart)
|
if (!obj->smart.smart)
|
||||||
{
|
{
|
||||||
|
@ -900,7 +903,8 @@ evas_object_hide(Evas_Object *obj)
|
||||||
{
|
{
|
||||||
evas_object_clip_across_clippees_check(obj);
|
evas_object_clip_across_clippees_check(obj);
|
||||||
evas_object_recalc_clippees(obj);
|
evas_object_recalc_clippees(obj);
|
||||||
if (!evas_event_passes_through(obj))
|
if ((!evas_event_passes_through(obj)) &&
|
||||||
|
(!evas_event_freezes_through(obj)))
|
||||||
{
|
{
|
||||||
if ((!obj->smart.smart) ||
|
if ((!obj->smart.smart) ||
|
||||||
((obj->cur.map) && (obj->cur.map->count == 4) && (obj->cur.usemap)))
|
((obj->cur.map) && (obj->cur.map->count == 4) && (obj->cur.usemap)))
|
||||||
|
|
|
@ -102,14 +102,16 @@ evas_object_polygon_point_add(Evas_Object *obj, Evas_Coord x, Evas_Coord y)
|
||||||
MAGIC_CHECK(o, Evas_Object_Polygon, MAGIC_OBJ_POLYGON);
|
MAGIC_CHECK(o, Evas_Object_Polygon, MAGIC_OBJ_POLYGON);
|
||||||
return;
|
return;
|
||||||
MAGIC_CHECK_END();
|
MAGIC_CHECK_END();
|
||||||
|
|
||||||
if (obj->layer->evas->events_frozen <= 0)
|
if (obj->layer->evas->events_frozen <= 0)
|
||||||
{
|
{
|
||||||
if (!evas_event_passes_through(obj))
|
if (!evas_event_passes_through(obj) &&
|
||||||
|
!evas_event_freezes_through(obj))
|
||||||
was = evas_object_is_in_output_rect(obj,
|
was = evas_object_is_in_output_rect(obj,
|
||||||
obj->layer->evas->pointer.x,
|
obj->layer->evas->pointer.x,
|
||||||
obj->layer->evas->pointer.y, 1, 1);
|
obj->layer->evas->pointer.y,
|
||||||
|
1, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!o->points)
|
if (!o->points)
|
||||||
{
|
{
|
||||||
o->offset.x = obj->cur.geometry.x;
|
o->offset.x = obj->cur.geometry.x;
|
||||||
|
@ -172,7 +174,8 @@ evas_object_polygon_point_add(Evas_Object *obj, Evas_Coord x, Evas_Coord y)
|
||||||
is = evas_object_is_in_output_rect(obj,
|
is = evas_object_is_in_output_rect(obj,
|
||||||
obj->layer->evas->pointer.x,
|
obj->layer->evas->pointer.x,
|
||||||
obj->layer->evas->pointer.y, 1, 1);
|
obj->layer->evas->pointer.y, 1, 1);
|
||||||
if (!evas_event_passes_through(obj))
|
if (!evas_event_passes_through(obj) &&
|
||||||
|
!evas_event_freezes_through(obj) )
|
||||||
{
|
{
|
||||||
if ((is ^ was) && obj->cur.visible)
|
if ((is ^ was) && obj->cur.visible)
|
||||||
evas_event_feed_mouse_move(obj->layer->evas,
|
evas_event_feed_mouse_move(obj->layer->evas,
|
||||||
|
|
|
@ -314,7 +314,7 @@ EAPI void
|
||||||
evas_object_text_font_set(Evas_Object *obj, const char *font, Evas_Font_Size size)
|
evas_object_text_font_set(Evas_Object *obj, const char *font, Evas_Font_Size size)
|
||||||
{
|
{
|
||||||
Evas_Object_Text *o;
|
Evas_Object_Text *o;
|
||||||
int is, was = 0, pass = 0;
|
int is, was = 0, pass = 0, freeze = 0;
|
||||||
Evas_Font_Description *fdesc;
|
Evas_Font_Description *fdesc;
|
||||||
|
|
||||||
if ((!font) || (size <= 0)) return;
|
if ((!font) || (size <= 0)) return;
|
||||||
|
@ -344,11 +344,12 @@ evas_object_text_font_set(Evas_Object *obj, const char *font, Evas_Font_Size siz
|
||||||
|
|
||||||
if (obj->layer->evas->events_frozen <= 0)
|
if (obj->layer->evas->events_frozen <= 0)
|
||||||
{
|
{
|
||||||
pass = evas_event_passes_through(obj);
|
pass = evas_event_passes_through(obj);
|
||||||
if (!pass)
|
freeze = evas_event_freezes_through(obj);
|
||||||
was = evas_object_is_in_output_rect(obj,
|
if ((!pass) && (!freeze))
|
||||||
obj->layer->evas->pointer.x,
|
was = evas_object_is_in_output_rect(obj,
|
||||||
obj->layer->evas->pointer.y, 1, 1);
|
obj->layer->evas->pointer.x,
|
||||||
|
obj->layer->evas->pointer.y, 1, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef EVAS_FRAME_QUEUING
|
#ifdef EVAS_FRAME_QUEUING
|
||||||
|
@ -359,8 +360,8 @@ evas_object_text_font_set(Evas_Object *obj, const char *font, Evas_Font_Size siz
|
||||||
/* DO IT */
|
/* DO IT */
|
||||||
if (o->font)
|
if (o->font)
|
||||||
{
|
{
|
||||||
evas_font_free(obj->layer->evas, o->font);
|
evas_font_free(obj->layer->evas, o->font);
|
||||||
o->font = NULL;
|
o->font = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
o->font = evas_font_load(obj->layer->evas, o->cur.fdesc, o->cur.source,
|
o->font = evas_font_load(obj->layer->evas, o->cur.fdesc, o->cur.source,
|
||||||
|
@ -386,18 +387,19 @@ evas_object_text_font_set(Evas_Object *obj, const char *font, Evas_Font_Size siz
|
||||||
evas_object_coords_recalc(obj);
|
evas_object_coords_recalc(obj);
|
||||||
if (obj->layer->evas->events_frozen <= 0)
|
if (obj->layer->evas->events_frozen <= 0)
|
||||||
{
|
{
|
||||||
if (!pass)
|
if ((!pass) && (!freeze))
|
||||||
{
|
{
|
||||||
is = evas_object_is_in_output_rect(obj,
|
is = evas_object_is_in_output_rect(obj,
|
||||||
obj->layer->evas->pointer.x,
|
obj->layer->evas->pointer.x,
|
||||||
obj->layer->evas->pointer.y, 1, 1);
|
obj->layer->evas->pointer.y,
|
||||||
if ((is ^ was) && obj->cur.visible)
|
1, 1);
|
||||||
evas_event_feed_mouse_move(obj->layer->evas,
|
if ((is ^ was) && obj->cur.visible)
|
||||||
obj->layer->evas->pointer.x,
|
evas_event_feed_mouse_move(obj->layer->evas,
|
||||||
obj->layer->evas->pointer.y,
|
obj->layer->evas->pointer.x,
|
||||||
obj->layer->evas->last_timestamp,
|
obj->layer->evas->pointer.y,
|
||||||
NULL);
|
obj->layer->evas->last_timestamp,
|
||||||
}
|
NULL);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
evas_object_inform_call_resize(obj);
|
evas_object_inform_call_resize(obj);
|
||||||
}
|
}
|
||||||
|
|
|
@ -68,7 +68,8 @@ evas_object_raise(Evas_Object *obj)
|
||||||
evas_object_inform_call_restack(obj);
|
evas_object_inform_call_restack(obj);
|
||||||
if (obj->layer->evas->events_frozen <= 0)
|
if (obj->layer->evas->events_frozen <= 0)
|
||||||
{
|
{
|
||||||
if (!evas_event_passes_through(obj))
|
if ((!evas_event_passes_through(obj)) &&
|
||||||
|
(!evas_event_freezes_through(obj)))
|
||||||
{
|
{
|
||||||
if (!obj->smart.smart)
|
if (!obj->smart.smart)
|
||||||
{
|
{
|
||||||
|
@ -117,7 +118,8 @@ evas_object_lower(Evas_Object *obj)
|
||||||
evas_object_inform_call_restack(obj);
|
evas_object_inform_call_restack(obj);
|
||||||
if (obj->layer->evas->events_frozen <= 0)
|
if (obj->layer->evas->events_frozen <= 0)
|
||||||
{
|
{
|
||||||
if (!evas_event_passes_through(obj))
|
if ((!evas_event_passes_through(obj)) &&
|
||||||
|
(!evas_event_freezes_through(obj)))
|
||||||
{
|
{
|
||||||
if (!obj->smart.smart)
|
if (!obj->smart.smart)
|
||||||
{
|
{
|
||||||
|
@ -197,7 +199,8 @@ evas_object_stack_above(Evas_Object *obj, Evas_Object *above)
|
||||||
evas_object_inform_call_restack(obj);
|
evas_object_inform_call_restack(obj);
|
||||||
if (obj->layer->evas->events_frozen <= 0)
|
if (obj->layer->evas->events_frozen <= 0)
|
||||||
{
|
{
|
||||||
if (!evas_event_passes_through(obj))
|
if ((!evas_event_passes_through(obj)) &&
|
||||||
|
(!evas_event_freezes_through(obj)))
|
||||||
{
|
{
|
||||||
if (!obj->smart.smart)
|
if (!obj->smart.smart)
|
||||||
{
|
{
|
||||||
|
@ -277,7 +280,8 @@ evas_object_stack_below(Evas_Object *obj, Evas_Object *below)
|
||||||
evas_object_inform_call_restack(obj);
|
evas_object_inform_call_restack(obj);
|
||||||
if (obj->layer->evas->events_frozen <= 0)
|
if (obj->layer->evas->events_frozen <= 0)
|
||||||
{
|
{
|
||||||
if (!evas_event_passes_through(obj))
|
if ((!evas_event_passes_through(obj)) &&
|
||||||
|
(!evas_event_freezes_through(obj)))
|
||||||
{
|
{
|
||||||
if (!obj->smart.smart)
|
if (!obj->smart.smart)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue