From 05136cc824d52db9ecf519309d603ac5a522ba96 Mon Sep 17 00:00:00 2001 From: Tom Hacohen Date: Mon, 20 Aug 2012 11:05:48 +0000 Subject: [PATCH] Evas textblock: Reverted my last commit and added WooHyun's instead. They were pretty similar, but I think WooHyun's was better. Thanks to WooHyun for the patch. SVN revision: 75461 --- .../src/lib/canvas/evas_object_textblock.c | 22 +++++++++++++------ 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/legacy/evas/src/lib/canvas/evas_object_textblock.c b/legacy/evas/src/lib/canvas/evas_object_textblock.c index 0943bb55ac..e9c2a9f2e6 100644 --- a/legacy/evas/src/lib/canvas/evas_object_textblock.c +++ b/legacy/evas/src/lib/canvas/evas_object_textblock.c @@ -8841,14 +8841,22 @@ _evas_textblock_cursor_range_in_line_geometry_get( tr->w = w; } } - else if ((it1 == it2) && (it1->type == EVAS_TEXTBLOCK_ITEM_FORMAT)) + else if ((it1 == it2) && (it1->type != EVAS_TEXTBLOCK_ITEM_TEXT)) { - tr = calloc(1, sizeof(Evas_Textblock_Rectangle)); - rects = eina_list_append(rects, tr); - tr->x = ln->x + it1->x; - tr->y = ln->par->y + ln->y; - tr->h = ln->h; - tr->w = it1->w; + Evas_Coord x, w; + x = 0; + w = it1->w; + _evas_textblock_range_calc_x_w(it1, &x, &w, EINA_TRUE, + switch_items); + if (w > 0) + { + tr = calloc(1, sizeof(Evas_Textblock_Rectangle)); + rects = eina_list_append(rects, tr); + tr->x = ln->x + it1->x + x; + tr->y = ln->par->y + ln->y; + tr->h = ln->h; + tr->w = w; + } } else if (it1 != it2) {