From 8f92069a63e5f349c590023a1bd2548346a2cde3 Mon Sep 17 00:00:00 2001 From: Thiep Ha Date: Sat, 22 Feb 2014 12:06:31 +0900 Subject: [PATCH] [Elm_Entry] Fix bug: magnifier position is incorrect when mouse down on selection handler Summary: Magnifier is displayed incorrectly when mouse down on selection handler Reproduce way: Right click on entry (eg Entry), choose Select, select some text, press left mouse on selection handler (do not move the mouse), take a look at magnifier position. Reason: Magnifier position is set to mouse down position in entry. Fix: Check mouse down status and place correct position for magnifier. Reviewers: seoz, Hermet Reviewed By: Hermet Differential Revision: https://phab.enlightenment.org/D573 --- legacy/elementary/src/lib/elm_entry.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/legacy/elementary/src/lib/elm_entry.c b/legacy/elementary/src/lib/elm_entry.c index d3a3131074..5217940dec 100644 --- a/legacy/elementary/src/lib/elm_entry.c +++ b/legacy/elementary/src/lib/elm_entry.c @@ -1442,7 +1442,19 @@ static void _magnifier_proxy_update(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { ELM_ENTRY_DATA_GET(data, sd); - _magnifier_move(data, sd->downx, sd->downy); + if ((sd->start_handler_down) || (sd->end_handler_down)) + { + Evas_Coord ex, ey, cx, cy, ch; + + evas_object_geometry_get(sd->entry_edje, &ex, &ey, NULL, NULL); + edje_object_part_text_cursor_geometry_get(sd->entry_edje, "elm.text", + &cx, &cy, NULL, &ch); + _magnifier_move(data, ex + cx, ey + cy + (ch / 2)); + } + else + { + _magnifier_move(data, sd->downx, sd->downy); + } } static void