forked from enlightenment/efl
* evas: Another attempt to fix clip cache. Now invalid clip cache every time
we change cur.geometry in the code (did a grep to locate this). I hope I did spot all users, as I didn't see bug in exec_buf, efm and in window title, I am confident enought to break svn again. * WARNING * This change can cause visual bug. Please report. SVN revision: 40039
This commit is contained in:
parent
0a662abf81
commit
fa4c0f3ea3
|
@ -165,6 +165,7 @@ evas_object_line_xy_set(Evas_Object *obj, Evas_Coord x1, Evas_Coord y1, Evas_Coo
|
|||
o->changed = 1;
|
||||
evas_object_change(obj);
|
||||
evas_object_coords_recalc(obj);
|
||||
evas_object_clip_dirty(obj);
|
||||
if (obj->layer->evas->events_frozen <= 0)
|
||||
{
|
||||
is = evas_object_is_in_output_rect(obj,
|
||||
|
|
|
@ -1202,6 +1202,7 @@ evas_object_color_set(Evas_Object *obj, int r, int g, int b, int a)
|
|||
obj->cur.color.r = r;
|
||||
obj->cur.color.g = g;
|
||||
obj->cur.color.b = b;
|
||||
evas_object_clip_dirty(obj);
|
||||
if ((obj->cur.color.a == 0) && (a == 0)) return;
|
||||
obj->cur.color.a = a;
|
||||
evas_object_change(obj);
|
||||
|
|
|
@ -160,6 +160,7 @@ evas_object_polygon_point_add(Evas_Object *obj, Evas_Coord x, Evas_Coord y)
|
|||
//// obj->cur.cache.geometry.validity = 0;
|
||||
o->changed = 1;
|
||||
evas_object_change(obj);
|
||||
evas_object_clip_dirty(obj);
|
||||
evas_object_coords_recalc(obj);
|
||||
if (obj->layer->evas->events_frozen != 0)
|
||||
{
|
||||
|
@ -210,6 +211,7 @@ evas_object_polygon_points_clear(Evas_Object *obj)
|
|||
//// obj->cur.cache.geometry.validity = 0;
|
||||
o->changed = 1;
|
||||
evas_object_change(obj);
|
||||
evas_object_clip_dirty(obj);
|
||||
evas_object_coords_recalc(obj);
|
||||
is = evas_object_is_in_output_rect(obj,
|
||||
obj->layer->evas->pointer.x,
|
||||
|
|
|
@ -257,6 +257,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_clip_dirty(obj);
|
||||
evas_object_coords_recalc(obj);
|
||||
if (obj->layer->evas->events_frozen <= 0)
|
||||
{
|
||||
|
@ -361,6 +362,7 @@ evas_object_text_text_set(Evas_Object *obj, const char *text)
|
|||
}
|
||||
o->changed = 1;
|
||||
evas_object_change(obj);
|
||||
evas_object_clip_dirty(obj);
|
||||
evas_object_coords_recalc(obj);
|
||||
is = evas_object_is_in_output_rect(obj,
|
||||
obj->layer->evas->pointer.x,
|
||||
|
@ -698,6 +700,7 @@ evas_object_text_style_set(Evas_Object *obj, Evas_Text_Style_Type style)
|
|||
obj->cur.geometry.w = 0;
|
||||
obj->cur.geometry.h += (t - pt) + (b - pb);
|
||||
evas_object_change(obj);
|
||||
evas_object_clip_dirty(obj);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1803,6 +1806,7 @@ _evas_object_text_rehint(Evas_Object *obj)
|
|||
}
|
||||
o->changed = 1;
|
||||
evas_object_change(obj);
|
||||
evas_object_clip_dirty(obj);
|
||||
evas_object_coords_recalc(obj);
|
||||
is = evas_object_is_in_output_rect(obj,
|
||||
obj->layer->evas->pointer.x,
|
||||
|
|
|
@ -172,7 +172,8 @@ evas_object_clip_recalc(Evas_Object *obj)
|
|||
int nx, ny, nw, nh, nvis, nr, ng, nb, na;
|
||||
|
||||
if (obj->layer->evas->events_frozen > 0) return;
|
||||
// if (!obj->cur.clipper->cur.cache.clip.dirty) return;
|
||||
if (!(obj->cur.clipper == NULL || obj->cur.clipper->cur.cache.clip.dirty)
|
||||
&& !obj->cur.cache.clip.dirty) return;
|
||||
evas_object_coords_recalc(obj);
|
||||
cx = obj->cur.geometry.x; cy = obj->cur.geometry.y;
|
||||
cw = obj->cur.geometry.w; ch = obj->cur.geometry.h;
|
||||
|
@ -185,7 +186,7 @@ evas_object_clip_recalc(Evas_Object *obj)
|
|||
if (obj->cur.clipper)
|
||||
{
|
||||
// this causes problems... hmmm
|
||||
// if (obj->cur.clipper->cur.cache.clip.dirty)
|
||||
if (obj->cur.clipper->cur.cache.clip.dirty)
|
||||
evas_object_clip_recalc(obj->cur.clipper);
|
||||
nx = obj->cur.clipper->cur.cache.clip.x;
|
||||
ny = obj->cur.clipper->cur.cache.clip.y;
|
||||
|
|
Loading…
Reference in New Issue