From d1d3b62ebeab1851a3faab1e54be83e975c7b79c Mon Sep 17 00:00:00 2001 From: Carsten Haitzler Date: Sun, 29 Dec 2002 02:09:34 +0000 Subject: [PATCH] hmm. forgot to translate text coords form queries.. and some glyph vs char pos bugs SVN revision: 6526 --- legacy/evas/src/lib/Evas.h | 2 -- legacy/evas/src/lib/canvas/evas_object_text.c | 5 +++-- legacy/evas/src/lib/engines/common/evas_font_query.c | 2 +- legacy/evas/src/lib/include/evas_private.h | 2 +- 4 files changed, 5 insertions(+), 6 deletions(-) diff --git a/legacy/evas/src/lib/Evas.h b/legacy/evas/src/lib/Evas.h index 5d61be3724..e37dbf93d8 100644 --- a/legacy/evas/src/lib/Evas.h +++ b/legacy/evas/src/lib/Evas.h @@ -320,8 +320,6 @@ extern "C" { double evas_object_text_horiz_advance_get(Evas_Object *obj); double evas_object_text_vert_advance_get (Evas_Object *obj); double evas_object_text_inset_get (Evas_Object *obj); - double evas_object_text_horiz_advance_get(Evas_Object *obj); - double evas_object_text_vert_advance_get (Evas_Object *obj); int evas_object_text_char_pos_get (Evas_Object *obj, int pos, double *cx, double *cy, double *cw, double *ch); int evas_object_text_char_coords_get (Evas_Object *obj, double x, double y, double *cx, double *cy, double *cw, double *ch); diff --git a/legacy/evas/src/lib/canvas/evas_object_text.c b/legacy/evas/src/lib/canvas/evas_object_text.c index 281cbc0bd3..043624aa38 100644 --- a/legacy/evas/src/lib/canvas/evas_object_text.c +++ b/legacy/evas/src/lib/canvas/evas_object_text.c @@ -203,7 +203,6 @@ evas_object_text_font_set(Evas_Object *obj, char *font, double size) free(font_tmp); } } - //_WIN32_WCE done: ; } if (o->cur.font) free(o->cur.font); @@ -487,6 +486,7 @@ evas_object_text_char_pos_get(Evas_Object *obj, int pos, double *cx, double *cy, pos, &x, &y, &w, &h); + y += o->max_ascent; if (cx) *cx = x; if (cy) *cy = y; if (cw) *cw = w; @@ -510,9 +510,10 @@ evas_object_text_char_coords_get(Evas_Object *obj, double x, double y, double *c ret = obj->layer->evas->engine.func->font_char_at_coords_get(obj->layer->evas->engine.data.output, o->engine_data, o->cur.text, - x, y, + x, y - o->max_ascent, &rx, &ry, &rw, &rh); + ry += o->max_ascent; if (cx) *cx = rx; if (cy) *cy = ry; if (cw) *cw = rw; diff --git a/legacy/evas/src/lib/engines/common/evas_font_query.c b/legacy/evas/src/lib/engines/common/evas_font_query.c index 883b45899b..799987e4f9 100644 --- a/legacy/evas/src/lib/engines/common/evas_font_query.c +++ b/legacy/evas/src/lib/engines/common/evas_font_query.c @@ -157,7 +157,7 @@ evas_common_font_query_char_coords(RGBA_Font *fn, const char *text, int pos, int chr_y = (pen_y >> 8) + fg->glyph_out->top; chr_w = fg->glyph_out->bitmap.width; - if (gl == pos) + if (chr == pos) { if (cx) *cx = chr_x; if (cy) *cy = - evas_common_font_max_ascent_get(fn); diff --git a/legacy/evas/src/lib/include/evas_private.h b/legacy/evas/src/lib/include/evas_private.h index 2693bb5f70..a76f257f9a 100644 --- a/legacy/evas/src/lib/include/evas_private.h +++ b/legacy/evas/src/lib/include/evas_private.h @@ -33,7 +33,7 @@ typedef enum _Evas_Callback_Type EVAS_CALLBACK_RESTACK } Evas_Callback_Type; -typedef struct _Evas_Rectangle Evas_Rectangle; +typedef struct _Evas_Rectangle Evas_Rectangle; typedef struct _Evas Evas; typedef struct _Evas_Layer Evas_Layer;