Use eina_stringshare_replace rather than several _del & _add calls
(tested w/ no apparent adverse affects). Fix some formatting. SVN revision: 50307
This commit is contained in:
parent
7521047f09
commit
39adb32e71
|
@ -9,7 +9,7 @@
|
||||||
static const char o_type[] = "text";
|
static const char o_type[] = "text";
|
||||||
|
|
||||||
/* private struct for text object internal data */
|
/* private struct for text object internal data */
|
||||||
typedef struct _Evas_Object_Text Evas_Object_Text;
|
typedef struct _Evas_Object_Text Evas_Object_Text;
|
||||||
|
|
||||||
struct _Evas_Object_Text
|
struct _Evas_Object_Text
|
||||||
{
|
{
|
||||||
|
@ -132,9 +132,12 @@ evas_object_text_font_source_set(Evas_Object *obj, const char *font_source)
|
||||||
if ((o->cur.source) && (font_source) &&
|
if ((o->cur.source) && (font_source) &&
|
||||||
(!strcmp(o->cur.source, font_source)))
|
(!strcmp(o->cur.source, font_source)))
|
||||||
return;
|
return;
|
||||||
|
/*
|
||||||
if (o->cur.source) eina_stringshare_del(o->cur.source);
|
if (o->cur.source) eina_stringshare_del(o->cur.source);
|
||||||
if (font_source) o->cur.source = eina_stringshare_add(font_source);
|
if (font_source) o->cur.source = eina_stringshare_add(font_source);
|
||||||
else o->cur.source = NULL;
|
else o->cur.source = NULL;
|
||||||
|
*/
|
||||||
|
eina_stringshare_replace(&o->cur.source, font_source);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -172,8 +175,7 @@ evas_object_text_font_set(Evas_Object *obj, const char *font, Evas_Font_Size siz
|
||||||
int is, was = 0, pass = 0;
|
int is, was = 0, pass = 0;
|
||||||
int same_font = 0;
|
int same_font = 0;
|
||||||
|
|
||||||
if (!font) return;
|
if ((!font) || (size <= 0)) return;
|
||||||
if (size <= 0) return;
|
|
||||||
MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
|
MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
|
||||||
return;
|
return;
|
||||||
MAGIC_CHECK_END();
|
MAGIC_CHECK_END();
|
||||||
|
@ -209,9 +211,12 @@ evas_object_text_font_set(Evas_Object *obj, const char *font, Evas_Font_Size siz
|
||||||
}
|
}
|
||||||
if (!same_font)
|
if (!same_font)
|
||||||
{
|
{
|
||||||
|
/*
|
||||||
if (o->cur.font) eina_stringshare_del(o->cur.font);
|
if (o->cur.font) eina_stringshare_del(o->cur.font);
|
||||||
if (font) o->cur.font = eina_stringshare_add(font);
|
if (font) o->cur.font = eina_stringshare_add(font);
|
||||||
else o->cur.font = NULL;
|
else o->cur.font = NULL;
|
||||||
|
*/
|
||||||
|
eina_stringshare_replace(&o->cur.font, font);
|
||||||
o->prev.font = NULL;
|
o->prev.font = NULL;
|
||||||
}
|
}
|
||||||
o->cur.size = size;
|
o->cur.size = size;
|
||||||
|
@ -222,10 +227,7 @@ evas_object_text_font_set(Evas_Object *obj, const char *font, Evas_Font_Size siz
|
||||||
{
|
{
|
||||||
int w, h;
|
int w, h;
|
||||||
|
|
||||||
ENFN->font_string_size_get(ENDT,
|
ENFN->font_string_size_get(ENDT, o->engine_data, o->cur.text, &w, &h);
|
||||||
o->engine_data,
|
|
||||||
o->cur.text,
|
|
||||||
&w, &h);
|
|
||||||
o->ascent = ENFN->font_ascent_get(ENDT, o->engine_data);
|
o->ascent = ENFN->font_ascent_get(ENDT, o->engine_data);
|
||||||
o->descent = ENFN->font_descent_get(ENDT, o->engine_data);
|
o->descent = ENFN->font_descent_get(ENDT, o->engine_data);
|
||||||
o->max_ascent = ENFN->font_max_ascent_get(ENDT, o->engine_data);
|
o->max_ascent = ENFN->font_max_ascent_get(ENDT, o->engine_data);
|
||||||
|
@ -332,19 +334,19 @@ evas_object_text_text_set(Evas_Object *obj, const char *text)
|
||||||
obj->layer->evas->pointer.x,
|
obj->layer->evas->pointer.x,
|
||||||
obj->layer->evas->pointer.y, 1, 1);
|
obj->layer->evas->pointer.y, 1, 1);
|
||||||
/* DO II */
|
/* DO II */
|
||||||
|
/*
|
||||||
if (o->cur.text) eina_stringshare_del(o->cur.text);
|
if (o->cur.text) eina_stringshare_del(o->cur.text);
|
||||||
if ((text) && (*text)) o->cur.text = eina_stringshare_add(text);
|
if ((text) && (*text)) o->cur.text = eina_stringshare_add(text);
|
||||||
else o->cur.text = NULL;
|
else o->cur.text = NULL;
|
||||||
|
*/
|
||||||
|
eina_stringshare_replace(&o->cur.text, text);
|
||||||
o->prev.text = NULL;
|
o->prev.text = NULL;
|
||||||
if ((o->engine_data) && (o->cur.text))
|
if ((o->engine_data) && (o->cur.text))
|
||||||
{
|
{
|
||||||
int w, h;
|
int w, h;
|
||||||
int l = 0, r = 0, t = 0, b = 0;
|
int l = 0, r = 0, t = 0, b = 0;
|
||||||
|
|
||||||
ENFN->font_string_size_get(ENDT,
|
ENFN->font_string_size_get(ENDT, o->engine_data, o->cur.text, &w, &h);
|
||||||
o->engine_data,
|
|
||||||
o->cur.text,
|
|
||||||
&w, &h);
|
|
||||||
evas_text_style_pad_get(o->cur.style, &l, &r, &t, &b);
|
evas_text_style_pad_get(o->cur.style, &l, &r, &t, &b);
|
||||||
obj->cur.geometry.w = w + l + r;
|
obj->cur.geometry.w = w + l + r;
|
||||||
obj->cur.geometry.h = h + t + b;
|
obj->cur.geometry.h = h + t + b;
|
||||||
|
@ -586,9 +588,7 @@ evas_object_text_char_pos_get(const Evas_Object *obj, int pos, Evas_Coord *cx, E
|
||||||
inset =
|
inset =
|
||||||
ENFN->font_inset_get(ENDT, o->engine_data, o->cur.text);
|
ENFN->font_inset_get(ENDT, o->engine_data, o->cur.text);
|
||||||
ret = ENFN->font_char_coords_get(ENDT, o->engine_data, o->cur.text,
|
ret = ENFN->font_char_coords_get(ENDT, o->engine_data, o->cur.text,
|
||||||
pos,
|
pos, &x, &y, &w, &h);
|
||||||
&x, &y,
|
|
||||||
&w, &h);
|
|
||||||
evas_text_style_pad_get(o->cur.style, &l, &r, &t, &b);
|
evas_text_style_pad_get(o->cur.style, &l, &r, &t, &b);
|
||||||
y += o->max_ascent - t;
|
y += o->max_ascent - t;
|
||||||
x -= inset + l;
|
x -= inset + l;
|
||||||
|
@ -597,14 +597,14 @@ evas_object_text_char_pos_get(const Evas_Object *obj, int pos, Evas_Coord *cx, E
|
||||||
w += x;
|
w += x;
|
||||||
x = 0;
|
x = 0;
|
||||||
}
|
}
|
||||||
if (x + w > obj->cur.geometry.w) w = obj->cur.geometry.w - x;
|
if ((x + w) > obj->cur.geometry.w) w = obj->cur.geometry.w - x;
|
||||||
if (w < 0) w = 0;
|
if (w < 0) w = 0;
|
||||||
if (y < 0)
|
if (y < 0)
|
||||||
{
|
{
|
||||||
h += y;
|
h += y;
|
||||||
y = 0;
|
y = 0;
|
||||||
}
|
}
|
||||||
if (y + h > obj->cur.geometry.h) h = obj->cur.geometry.h - y;
|
if ((y + h) > obj->cur.geometry.h) h = obj->cur.geometry.h - y;
|
||||||
if (h < 0) h = 0;
|
if (h < 0) h = 0;
|
||||||
if (cx) *cx = x;
|
if (cx) *cx = x;
|
||||||
if (cy) *cy = y;
|
if (cy) *cy = y;
|
||||||
|
@ -640,11 +640,8 @@ evas_object_text_last_up_to_pos(const Evas_Object *obj, Evas_Coord x, Evas_Coord
|
||||||
if (!o->cur.text) return -1;
|
if (!o->cur.text) return -1;
|
||||||
inset =
|
inset =
|
||||||
ENFN->font_inset_get(ENDT, o->engine_data, o->cur.text);
|
ENFN->font_inset_get(ENDT, o->engine_data, o->cur.text);
|
||||||
return ENFN->font_last_up_to_pos(ENDT,
|
return ENFN->font_last_up_to_pos(ENDT, o->engine_data, o->cur.text,
|
||||||
o->engine_data,
|
x + inset, y - o->max_ascent);
|
||||||
o->cur.text,
|
|
||||||
x + inset,
|
|
||||||
y - o->max_ascent);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -672,13 +669,9 @@ evas_object_text_char_coords_get(const Evas_Object *obj, Evas_Coord x, Evas_Coor
|
||||||
if (!o->cur.text) return -1;
|
if (!o->cur.text) return -1;
|
||||||
inset =
|
inset =
|
||||||
ENFN->font_inset_get(ENDT, o->engine_data, o->cur.text);
|
ENFN->font_inset_get(ENDT, o->engine_data, o->cur.text);
|
||||||
ret = ENFN->font_char_at_coords_get(ENDT,
|
ret = ENFN->font_char_at_coords_get(ENDT, o->engine_data, o->cur.text,
|
||||||
o->engine_data,
|
x + inset, y - o->max_ascent,
|
||||||
o->cur.text,
|
&rx, &ry, &rw, &rh);
|
||||||
x + inset,
|
|
||||||
y - o->max_ascent,
|
|
||||||
&rx, &ry,
|
|
||||||
&rw, &rh);
|
|
||||||
evas_text_style_pad_get(o->cur.style, &l, &r, &t, &b);
|
evas_text_style_pad_get(o->cur.style, &l, &r, &t, &b);
|
||||||
ry += o->max_ascent - t;
|
ry += o->max_ascent - t;
|
||||||
rx -= inset + l;
|
rx -= inset + l;
|
||||||
|
@ -687,14 +680,14 @@ evas_object_text_char_coords_get(const Evas_Object *obj, Evas_Coord x, Evas_Coor
|
||||||
rw += rx;
|
rw += rx;
|
||||||
rx = 0;
|
rx = 0;
|
||||||
}
|
}
|
||||||
if (rx + rw > obj->cur.geometry.w) rw = obj->cur.geometry.w - rx;
|
if ((rx + rw) > obj->cur.geometry.w) rw = obj->cur.geometry.w - rx;
|
||||||
if (rw < 0) rw = 0;
|
if (rw < 0) rw = 0;
|
||||||
if (ry < 0)
|
if (ry < 0)
|
||||||
{
|
{
|
||||||
rh += ry;
|
rh += ry;
|
||||||
ry = 0;
|
ry = 0;
|
||||||
}
|
}
|
||||||
if (ry + rh > obj->cur.geometry.h) rh = obj->cur.geometry.h - ry;
|
if ((ry + rh) > obj->cur.geometry.h) rh = obj->cur.geometry.h - ry;
|
||||||
if (rh < 0) rh = 0;
|
if (rh < 0) rh = 0;
|
||||||
if (cx) *cx = rx;
|
if (cx) *cx = rx;
|
||||||
if (cy) *cy = ry;
|
if (cy) *cy = ry;
|
||||||
|
@ -722,8 +715,7 @@ evas_object_text_style_set(Evas_Object *obj, Evas_Text_Style_Type style)
|
||||||
MAGIC_CHECK(o, Evas_Object_Text, MAGIC_OBJ_TEXT);
|
MAGIC_CHECK(o, Evas_Object_Text, MAGIC_OBJ_TEXT);
|
||||||
return;
|
return;
|
||||||
MAGIC_CHECK_END();
|
MAGIC_CHECK_END();
|
||||||
if (o->cur.style == style)
|
if (o->cur.style == style) return;
|
||||||
return;
|
|
||||||
evas_text_style_pad_get(o->cur.style, &pl, &pr, &pt, &pb);
|
evas_text_style_pad_get(o->cur.style, &pl, &pr, &pt, &pb);
|
||||||
o->cur.style = style;
|
o->cur.style = style;
|
||||||
evas_text_style_pad_get(o->cur.style, &l, &r, &t, &b);
|
evas_text_style_pad_get(o->cur.style, &l, &r, &t, &b);
|
||||||
|
@ -1036,8 +1028,8 @@ evas_font_path_append(Evas *e, const char *path)
|
||||||
MAGIC_CHECK(e, Evas, MAGIC_EVAS);
|
MAGIC_CHECK(e, Evas, MAGIC_EVAS);
|
||||||
return;
|
return;
|
||||||
MAGIC_CHECK_END();
|
MAGIC_CHECK_END();
|
||||||
if (!path) return;
|
|
||||||
|
|
||||||
|
if (!path) return;
|
||||||
e->font_path = eina_list_append(e->font_path, eina_stringshare_add(path));
|
e->font_path = eina_list_append(e->font_path, eina_stringshare_add(path));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1264,8 +1256,7 @@ evas_string_char_next_get(const char *str, int pos, int *decoded)
|
||||||
int p, d;
|
int p, d;
|
||||||
|
|
||||||
if (decoded) *decoded = 0;
|
if (decoded) *decoded = 0;
|
||||||
if (!str) return 0;
|
if ((!str) || (pos < 0)) return 0;
|
||||||
if (pos < 0) return 0;
|
|
||||||
p = pos;
|
p = pos;
|
||||||
d = evas_common_font_utf8_get_next((unsigned char *)str, &p);
|
d = evas_common_font_utf8_get_next((unsigned char *)str, &p);
|
||||||
if (decoded) *decoded = d;
|
if (decoded) *decoded = d;
|
||||||
|
@ -1285,8 +1276,7 @@ evas_string_char_prev_get(const char *str, int pos, int *decoded)
|
||||||
int p, d;
|
int p, d;
|
||||||
|
|
||||||
if (decoded) *decoded = 0;
|
if (decoded) *decoded = 0;
|
||||||
if (!str) return 0;
|
if ((!str) || (pos < 1)) return 0;
|
||||||
if (pos < 1) return 0;
|
|
||||||
p = pos;
|
p = pos;
|
||||||
d = evas_common_font_utf8_get_prev((unsigned char *)str, &p);
|
d = evas_common_font_utf8_get_prev((unsigned char *)str, &p);
|
||||||
if (decoded) *decoded = d;
|
if (decoded) *decoded = d;
|
||||||
|
@ -1302,8 +1292,8 @@ evas_string_char_prev_get(const char *str, int pos, int *decoded)
|
||||||
EAPI int
|
EAPI int
|
||||||
evas_string_char_len_get(const char *str)
|
evas_string_char_len_get(const char *str)
|
||||||
{
|
{
|
||||||
if (!str) return 0;
|
if (!str) return 0;
|
||||||
return evas_common_font_utf8_get_len((const unsigned char *) str);
|
return evas_common_font_utf8_get_len((const unsigned char *) str);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1456,11 +1446,11 @@ evas_object_text_render(Evas_Object *obj, void *output, void *context, void *sur
|
||||||
Evas_Object_Text *o;
|
Evas_Object_Text *o;
|
||||||
const char vals[5][5] =
|
const char vals[5][5] =
|
||||||
{
|
{
|
||||||
{0, 1, 2, 1, 0},
|
{0, 1, 2, 1, 0},
|
||||||
{1, 3, 4, 3, 1},
|
{1, 3, 4, 3, 1},
|
||||||
{2, 4, 5, 4, 2},
|
{2, 4, 5, 4, 2},
|
||||||
{1, 3, 4, 3, 1},
|
{1, 3, 4, 3, 1},
|
||||||
{0, 1, 2, 1, 0}
|
{0, 1, 2, 1, 0}
|
||||||
};
|
};
|
||||||
int sl = 0, st = 0;
|
int sl = 0, st = 0;
|
||||||
|
|
||||||
|
@ -1652,11 +1642,11 @@ evas_object_text_render_pre(Evas_Object *obj)
|
||||||
/* dont pre-render the obj twice! */
|
/* dont pre-render the obj twice! */
|
||||||
if (obj->pre_render_done) return;
|
if (obj->pre_render_done) return;
|
||||||
obj->pre_render_done = 1;
|
obj->pre_render_done = 1;
|
||||||
/* pre-render phase. this does anything an object needs to do just before */
|
/* pre-render phase. this does anything an object needs to do just before
|
||||||
/* rendering. this could mean loading the image data, retrieving it from */
|
rendering. This could mean loading the image data, retrieving it from
|
||||||
/* elsewhere, decoding video etc. */
|
elsewhere, decoding video etc.
|
||||||
/* then when this is done the object needs to figure if it changed and */
|
Then when this is done the object needs to figure if it changed and
|
||||||
/* if so what and where and add thr appropriate redraw rectangles */
|
if so what and where and add the appropriate redraw rectangles */
|
||||||
o = (Evas_Object_Text *)(obj->object_data);
|
o = (Evas_Object_Text *)(obj->object_data);
|
||||||
/* if someone is clipping this obj - go calculate the clipper */
|
/* if someone is clipping this obj - go calculate the clipper */
|
||||||
if (obj->cur.clipper)
|
if (obj->cur.clipper)
|
||||||
|
@ -1665,19 +1655,21 @@ evas_object_text_render_pre(Evas_Object *obj)
|
||||||
evas_object_clip_recalc(obj->cur.clipper);
|
evas_object_clip_recalc(obj->cur.clipper);
|
||||||
obj->cur.clipper->func->render_pre(obj->cur.clipper);
|
obj->cur.clipper->func->render_pre(obj->cur.clipper);
|
||||||
}
|
}
|
||||||
/* now figure what changed and add draw rects */
|
/* now figure what changed and add draw rects
|
||||||
/* if it just became visible or invisible */
|
if it just became visible or invisible */
|
||||||
is_v = evas_object_is_visible(obj);
|
is_v = evas_object_is_visible(obj);
|
||||||
was_v = evas_object_was_visible(obj);
|
was_v = evas_object_was_visible(obj);
|
||||||
if (is_v != was_v)
|
if (is_v != was_v)
|
||||||
{
|
{
|
||||||
evas_object_render_pre_visible_change(&obj->layer->evas->clip_changes, obj, is_v, was_v);
|
evas_object_render_pre_visible_change(&obj->layer->evas->clip_changes,
|
||||||
|
obj, is_v, was_v);
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
if ((obj->cur.map != obj->prev.map) ||
|
if ((obj->cur.map != obj->prev.map) ||
|
||||||
(obj->cur.usemap != obj->prev.usemap))
|
(obj->cur.usemap != obj->prev.usemap))
|
||||||
{
|
{
|
||||||
evas_object_render_pre_prev_cur_add(&obj->layer->evas->clip_changes, obj);
|
evas_object_render_pre_prev_cur_add(&obj->layer->evas->clip_changes,
|
||||||
|
obj);
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
/* its not visible - we accounted for it appearing or not so just abort */
|
/* its not visible - we accounted for it appearing or not so just abort */
|
||||||
|
@ -1687,7 +1679,8 @@ evas_object_text_render_pre(Evas_Object *obj)
|
||||||
/* if we restacked (layer or just within a layer) and dont clip anyone */
|
/* if we restacked (layer or just within a layer) and dont clip anyone */
|
||||||
if (obj->restack)
|
if (obj->restack)
|
||||||
{
|
{
|
||||||
evas_object_render_pre_prev_cur_add(&obj->layer->evas->clip_changes, obj);
|
evas_object_render_pre_prev_cur_add(&obj->layer->evas->clip_changes,
|
||||||
|
obj);
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
/* if it changed color */
|
/* if it changed color */
|
||||||
|
@ -1696,37 +1689,43 @@ evas_object_text_render_pre(Evas_Object *obj)
|
||||||
(obj->cur.color.b != obj->prev.color.b) ||
|
(obj->cur.color.b != obj->prev.color.b) ||
|
||||||
(obj->cur.color.a != obj->prev.color.a))
|
(obj->cur.color.a != obj->prev.color.a))
|
||||||
{
|
{
|
||||||
evas_object_render_pre_prev_cur_add(&obj->layer->evas->clip_changes, obj);
|
evas_object_render_pre_prev_cur_add(&obj->layer->evas->clip_changes,
|
||||||
|
obj);
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
/* if it changed geometry - and obviously not visibility or color */
|
/* if it changed geometry - and obviously not visibility or color
|
||||||
/* caluclate differences since we have a constant color fill */
|
calculate differences since we have a constant color fill
|
||||||
/* we really only need to update the differences */
|
we really only need to update the differences */
|
||||||
if ((obj->cur.geometry.x != obj->prev.geometry.x) ||
|
if ((obj->cur.geometry.x != obj->prev.geometry.x) ||
|
||||||
(obj->cur.geometry.y != obj->prev.geometry.y) ||
|
(obj->cur.geometry.y != obj->prev.geometry.y) ||
|
||||||
(obj->cur.geometry.w != obj->prev.geometry.w) ||
|
(obj->cur.geometry.w != obj->prev.geometry.w) ||
|
||||||
(obj->cur.geometry.h != obj->prev.geometry.h))
|
(obj->cur.geometry.h != obj->prev.geometry.h))
|
||||||
{
|
{
|
||||||
evas_object_render_pre_prev_cur_add(&obj->layer->evas->clip_changes, obj);
|
evas_object_render_pre_prev_cur_add(&obj->layer->evas->clip_changes,
|
||||||
|
obj);
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
if (obj->cur.render_op != obj->prev.render_op)
|
if (obj->cur.render_op != obj->prev.render_op)
|
||||||
{
|
{
|
||||||
evas_object_render_pre_prev_cur_add(&obj->layer->evas->clip_changes, obj);
|
evas_object_render_pre_prev_cur_add(&obj->layer->evas->clip_changes,
|
||||||
|
obj);
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
if (obj->cur.scale != obj->prev.scale)
|
if (obj->cur.scale != obj->prev.scale)
|
||||||
{
|
{
|
||||||
evas_object_render_pre_prev_cur_add(&obj->layer->evas->clip_changes, obj);
|
evas_object_render_pre_prev_cur_add(&obj->layer->evas->clip_changes,
|
||||||
|
obj);
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
if (o->changed)
|
if (o->changed)
|
||||||
{
|
{
|
||||||
if ((o->cur.size != o->prev.size) ||
|
if ((o->cur.size != o->prev.size) ||
|
||||||
((o->cur.font) && (o->prev.font) && (strcmp(o->cur.font, o->prev.font))) ||
|
((o->cur.font) && (o->prev.font) &&
|
||||||
|
(strcmp(o->cur.font, o->prev.font))) ||
|
||||||
((o->cur.font) && (!o->prev.font)) ||
|
((o->cur.font) && (!o->prev.font)) ||
|
||||||
((!o->cur.font) && (o->prev.font)) ||
|
((!o->cur.font) && (o->prev.font)) ||
|
||||||
((o->cur.text) && (o->prev.text) && (strcmp(o->cur.text, o->prev.text))) ||
|
((o->cur.text) && (o->prev.text) &&
|
||||||
|
(strcmp(o->cur.text, o->prev.text))) ||
|
||||||
((o->cur.text) && (!o->prev.text)) ||
|
((o->cur.text) && (!o->prev.text)) ||
|
||||||
((!o->cur.text) && (o->prev.text)) ||
|
((!o->cur.text) && (o->prev.text)) ||
|
||||||
((o->cur.style != o->prev.style)) ||
|
((o->cur.style != o->prev.style)) ||
|
||||||
|
@ -1747,12 +1746,14 @@ evas_object_text_render_pre(Evas_Object *obj)
|
||||||
((o->cur.glow2.b != o->prev.glow2.b)) ||
|
((o->cur.glow2.b != o->prev.glow2.b)) ||
|
||||||
((o->cur.glow2.a != o->prev.glow2.a)))
|
((o->cur.glow2.a != o->prev.glow2.a)))
|
||||||
{
|
{
|
||||||
evas_object_render_pre_prev_cur_add(&obj->layer->evas->clip_changes, obj);
|
evas_object_render_pre_prev_cur_add(&obj->layer->evas->clip_changes,
|
||||||
|
obj);
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
done:
|
done:
|
||||||
evas_object_render_pre_effect_updates(&obj->layer->evas->clip_changes, obj, is_v, was_v);
|
evas_object_render_pre_effect_updates(&obj->layer->evas->clip_changes,
|
||||||
|
obj, is_v, was_v);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -1760,9 +1761,9 @@ evas_object_text_render_post(Evas_Object *obj)
|
||||||
{
|
{
|
||||||
Evas_Object_Text *o;
|
Evas_Object_Text *o;
|
||||||
|
|
||||||
/* this moves the current data to the previous state parts of the object */
|
/* this moves the current data to the previous state parts of the object
|
||||||
/* in whatever way is safest for the object. also if we don't need object */
|
in whatever way is safest for the object. also if we don't need object
|
||||||
/* data anymore we can free it if the object deems this is a good idea */
|
data anymore we can free it if the object deems this is a good idea */
|
||||||
o = (Evas_Object_Text *)(obj->object_data);
|
o = (Evas_Object_Text *)(obj->object_data);
|
||||||
/* remove those pesky changes */
|
/* remove those pesky changes */
|
||||||
evas_object_clip_changes_clean(obj);
|
evas_object_clip_changes_clean(obj);
|
||||||
|
@ -1772,7 +1773,8 @@ evas_object_text_render_post(Evas_Object *obj)
|
||||||
o->changed = 0;
|
o->changed = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static unsigned int evas_object_text_id_get(Evas_Object *obj)
|
static unsigned int
|
||||||
|
evas_object_text_id_get(Evas_Object *obj)
|
||||||
{
|
{
|
||||||
Evas_Object_Text *o;
|
Evas_Object_Text *o;
|
||||||
|
|
||||||
|
@ -1781,7 +1783,8 @@ static unsigned int evas_object_text_id_get(Evas_Object *obj)
|
||||||
return MAGIC_OBJ_TEXT;
|
return MAGIC_OBJ_TEXT;
|
||||||
}
|
}
|
||||||
|
|
||||||
static unsigned int evas_object_text_visual_id_get(Evas_Object *obj)
|
static unsigned int
|
||||||
|
evas_object_text_visual_id_get(Evas_Object *obj)
|
||||||
{
|
{
|
||||||
Evas_Object_Text *o;
|
Evas_Object_Text *o;
|
||||||
|
|
||||||
|
@ -1790,7 +1793,8 @@ static unsigned int evas_object_text_visual_id_get(Evas_Object *obj)
|
||||||
return MAGIC_OBJ_SHAPE;
|
return MAGIC_OBJ_SHAPE;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void *evas_object_text_engine_data_get(Evas_Object *obj)
|
static void *
|
||||||
|
evas_object_text_engine_data_get(Evas_Object *obj)
|
||||||
{
|
{
|
||||||
Evas_Object_Text *o;
|
Evas_Object_Text *o;
|
||||||
|
|
||||||
|
@ -1802,16 +1806,16 @@ static void *evas_object_text_engine_data_get(Evas_Object *obj)
|
||||||
static int
|
static int
|
||||||
evas_object_text_is_opaque(Evas_Object *obj)
|
evas_object_text_is_opaque(Evas_Object *obj)
|
||||||
{
|
{
|
||||||
/* this returns 1 if the internal object data implies that the object is */
|
/* this returns 1 if the internal object data implies that the object is
|
||||||
/* currently fulyl opque over the entire gradient it occupies */
|
currently fully opaque over the entire gradient it occupies */
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
evas_object_text_was_opaque(Evas_Object *obj)
|
evas_object_text_was_opaque(Evas_Object *obj)
|
||||||
{
|
{
|
||||||
/* this returns 1 if the internal object data implies that the object was */
|
/* this returns 1 if the internal object data implies that the object was
|
||||||
/* currently fulyl opque over the entire gradient it occupies */
|
currently fully opaque over the entire gradient it occupies */
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1856,10 +1860,7 @@ _evas_object_text_rehint(Evas_Object *obj)
|
||||||
int w, h;
|
int w, h;
|
||||||
int l = 0, r = 0, t = 0, b = 0;
|
int l = 0, r = 0, t = 0, b = 0;
|
||||||
|
|
||||||
ENFN->font_string_size_get(ENDT,
|
ENFN->font_string_size_get(ENDT, o->engine_data, o->cur.text, &w, &h);
|
||||||
o->engine_data,
|
|
||||||
o->cur.text,
|
|
||||||
&w, &h);
|
|
||||||
evas_text_style_pad_get(o->cur.style, &l, &r, &t, &b);
|
evas_text_style_pad_get(o->cur.style, &l, &r, &t, &b);
|
||||||
obj->cur.geometry.w = w + l + r;
|
obj->cur.geometry.w = w + l + r;
|
||||||
obj->cur.geometry.h = h + t + b;
|
obj->cur.geometry.h = h + t + b;
|
||||||
|
|
Loading…
Reference in New Issue