ooooops. evas bug1 fix fix fix

SVN revision: 7213
This commit is contained in:
Carsten Haitzler 2003-07-22 05:16:47 +00:00
parent baecb9fcf4
commit 2b3b2ff8ca
5 changed files with 139 additions and 101 deletions

View File

@ -102,6 +102,7 @@ evas_object_line_xy_set(Evas_Object *obj, double x1, double y1, double x2, doubl
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)
was = evas_object_is_in_output_rect(obj,
obj->layer->evas->pointer.x,
obj->layer->evas->pointer.y, 1, 1);
@ -140,10 +141,13 @@ evas_object_line_xy_set(Evas_Object *obj, double x1, double y1, double x2, doubl
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 ((is ^ was) && obj->cur.visible)
evas_event_feed_mouse_move(obj->layer->evas,
obj->layer->evas->pointer.x,
obj->layer->evas->pointer.y);
}
evas_object_inform_call_move(obj);
evas_object_inform_call_resize(obj);
}

View File

@ -455,6 +455,7 @@ evas_object_move(Evas_Object *obj, double x, double y)
evas_object_inform_call_move(obj);
return;
}
if (!obj->pass_events)
was = evas_object_is_in_output_rect(obj,
obj->layer->evas->pointer.x,
obj->layer->evas->pointer.y, 1, 1);
@ -463,6 +464,8 @@ evas_object_move(Evas_Object *obj, double x, double y)
obj->cur.cache.geometry.validity = 0;
evas_object_change(obj);
evas_object_recalc_clippees(obj);
if (!obj->pass_events)
{
if (!obj->smart.smart)
{
is = evas_object_is_in_output_rect(obj,
@ -473,6 +476,7 @@ evas_object_move(Evas_Object *obj, double x, double y)
obj->layer->evas->pointer.x,
obj->layer->evas->pointer.y);
}
}
evas_object_inform_call_move(obj);
}
@ -503,6 +507,7 @@ evas_object_resize(Evas_Object *obj, double w, double h)
evas_object_inform_call_resize(obj);
return;
}
if (!obj->pass_events)
was = evas_object_is_in_output_rect(obj,
obj->layer->evas->pointer.x,
obj->layer->evas->pointer.y, 1, 1);
@ -511,6 +516,8 @@ evas_object_resize(Evas_Object *obj, double w, double h)
obj->cur.cache.geometry.validity = 0;
evas_object_change(obj);
evas_object_recalc_clippees(obj);
if (!obj->pass_events)
{
if (!obj->smart.smart)
{
is = evas_object_is_in_output_rect(obj,
@ -522,6 +529,7 @@ evas_object_resize(Evas_Object *obj, double w, double h)
obj->layer->evas->pointer.y);
}
}
}
/**
* To be documented.
@ -568,6 +576,8 @@ evas_object_show(Evas_Object *obj)
obj->cur.visible = 1;
evas_object_change(obj);
evas_object_recalc_clippees(obj);
if (!obj->pass_events)
{
if (!obj->smart.smart)
{
if (evas_object_is_in_output_rect(obj,
@ -577,6 +587,7 @@ evas_object_show(Evas_Object *obj)
obj->layer->evas->pointer.x,
obj->layer->evas->pointer.y);
}
}
evas_object_inform_call_show(obj);
}
@ -606,6 +617,8 @@ evas_object_hide(Evas_Object *obj)
obj->cur.visible = 0;
evas_object_change(obj);
evas_object_recalc_clippees(obj);
if (!obj->pass_events)
{
if (!obj->smart.smart)
{
if (evas_object_is_in_output_rect(obj,
@ -636,6 +649,7 @@ evas_object_hide(Evas_Object *obj)
}
}
}
}
evas_object_inform_call_hide(obj);
}

View File

@ -99,6 +99,7 @@ evas_object_polygon_point_add(Evas_Object *obj, double x, double y)
MAGIC_CHECK(o, Evas_Object_Polygon, MAGIC_OBJ_POLYGON);
return;
MAGIC_CHECK_END();
if (!obj->pass_events)
was = evas_object_is_in_output_rect(obj,
obj->layer->evas->pointer.x,
obj->layer->evas->pointer.y, 1, 1);
@ -138,10 +139,13 @@ evas_object_polygon_point_add(Evas_Object *obj, double x, double 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 ((is ^ was) && obj->cur.visible)
evas_event_feed_mouse_move(obj->layer->evas,
obj->layer->evas->pointer.x,
obj->layer->evas->pointer.y);
}
evas_object_inform_call_move(obj);
evas_object_inform_call_resize(obj);
}

View File

@ -502,6 +502,7 @@ evas_object_text_font_set(Evas_Object *obj, const char *font, double size)
same_font = 1;
if (size == o->cur.size) return;
}
if (!obj->pass_events)
was = evas_object_is_in_output_rect(obj,
obj->layer->evas->pointer.x,
obj->layer->evas->pointer.y, 1, 1);
@ -583,13 +584,16 @@ evas_object_text_font_set(Evas_Object *obj, const char *font, double size)
o->changed = 1;
evas_object_change(obj);
evas_object_coords_recalc(obj);
if (!obj->pass_events)
{
is = evas_object_is_in_output_rect(obj,
obj->layer->evas->pointer.x,
obj->layer->evas->pointer.y, 1, 1);
if ((is || was) && obj->cur.visible)
if ((is ^ was) && obj->cur.visible)
evas_event_feed_mouse_move(obj->layer->evas,
obj->layer->evas->pointer.x,
obj->layer->evas->pointer.y);
}
evas_object_inform_call_resize(obj);
}

View File

@ -73,6 +73,8 @@ evas_object_raise(Evas_Object *obj)
}
obj->restack = 1;
evas_object_change(obj);
if (!obj->pass_events)
{
if (!obj->smart.smart)
{
if (evas_object_is_in_output_rect(obj,
@ -81,6 +83,7 @@ evas_object_raise(Evas_Object *obj)
obj->cur.visible)
evas_event_feed_mouse_move(obj->layer->evas, obj->layer->evas->pointer.x, obj->layer->evas->pointer.y);
}
}
evas_object_inform_call_restack(obj);
}
@ -116,6 +119,8 @@ evas_object_lower(Evas_Object *obj)
}
obj->restack = 1;
evas_object_change(obj);
if (!obj->pass_events)
{
if (!obj->smart.smart)
{
if (evas_object_is_in_output_rect(obj,
@ -124,6 +129,7 @@ evas_object_lower(Evas_Object *obj)
obj->cur.visible)
evas_event_feed_mouse_move(obj->layer->evas, obj->layer->evas->pointer.x, obj->layer->evas->pointer.y);
}
}
evas_object_inform_call_restack(obj);
}
@ -167,6 +173,8 @@ evas_object_stack_above(Evas_Object *obj, Evas_Object *above)
}
obj->restack = 1;
evas_object_change(obj);
if (!obj->pass_events)
{
if (!obj->smart.smart)
{
if (evas_object_is_in_output_rect(obj,
@ -175,6 +183,7 @@ evas_object_stack_above(Evas_Object *obj, Evas_Object *above)
obj->cur.visible)
evas_event_feed_mouse_move(obj->layer->evas, obj->layer->evas->pointer.x, obj->layer->evas->pointer.y);
}
}
evas_object_inform_call_restack(obj);
}
@ -218,6 +227,8 @@ evas_object_stack_below(Evas_Object *obj, Evas_Object *below)
}
obj->restack = 1;
evas_object_change(obj);
if (!obj->pass_events)
{
if (!obj->smart.smart)
{
if (evas_object_is_in_output_rect(obj,
@ -226,6 +237,7 @@ evas_object_stack_below(Evas_Object *obj, Evas_Object *below)
obj->cur.visible)
evas_event_feed_mouse_move(obj->layer->evas, obj->layer->evas->pointer.x, obj->layer->evas->pointer.y);
}
}
evas_object_inform_call_restack(obj);
}