From ae08dc6fc3827ac48970b63773b7310e992586b7 Mon Sep 17 00:00:00 2001 From: Carsten Haitzler Date: Wed, 30 Mar 2011 12:20:51 +0000 Subject: [PATCH] selection now works too. SVN revision: 58209 --- legacy/edje/src/lib/edje_entry.c | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/legacy/edje/src/lib/edje_entry.c b/legacy/edje/src/lib/edje_entry.c index e29538f070..f1424a5d2a 100644 --- a/legacy/edje/src/lib/edje_entry.c +++ b/legacy/edje/src/lib/edje_entry.c @@ -1697,12 +1697,26 @@ _edje_part_mouse_move_cb(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUS { Evas_Coord lx, ly, lw, lh; - evas_textblock_cursor_line_coord_set(en->cursor, en->cy); - evas_textblock_cursor_line_geometry_get(en->cursor, &lx, &ly, &lw, &lh); - if (en->cx <= lx) - _curs_lin_start(en->cursor, rp->object, en); + if (evas_textblock_cursor_line_coord_set(en->cursor, en->cy) < 0) + { + if (rp->part->multiline) + _curs_end(en->cursor, rp->object, en); + else + { + evas_textblock_cursor_paragraph_first(en->cursor); + evas_textblock_cursor_line_geometry_get(en->cursor, &lx, &ly, &lw, &lh); + if (!evas_textblock_cursor_char_coord_set(en->cursor, en->cx, ly + (lh / 2))) + _curs_end(en->cursor, rp->object, en); + } + } else - _curs_lin_end(en->cursor, rp->object, en); + { + evas_textblock_cursor_line_geometry_get(en->cursor, &lx, &ly, &lw, &lh); + if (en->cx <= lx) + _curs_lin_start(en->cursor, rp->object, en); + else + _curs_lin_end(en->cursor, rp->object, en); + } } if (rp->part->select_mode == EDJE_ENTRY_SELECTION_MODE_EXPLICIT) {