From f27ff2fbf31a01c2f8d98e773bed6cc4298749bd Mon Sep 17 00:00:00 2001 From: discomfitor Date: Sun, 17 Feb 2013 14:18:46 +0000 Subject: [PATCH] fix damn edje entry anchor click signals: this fixes anchor clicking in elm_entry widgets when using a desktop profile which has been broken for over a year ticket #1179 --- ChangeLog | 4 ++++ NEWS | 1 + src/lib/edje/edje_entry.c | 13 +++++++------ 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/ChangeLog b/ChangeLog index 392ee8fca1..defaffa245 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2013-02-17 Mike Blumenkrantz + + * fix anchor clicked mouse signals for selection-enabled entries + 2013-02-16 Paulo C. A. Cavalcanti Jr * Evas: add pixels_alpha_get to evas engine. diff --git a/NEWS b/NEWS index b70c510a08..f7ce5b4d94 100644 --- a/NEWS +++ b/NEWS @@ -171,3 +171,4 @@ Fixes: * fix bug not to display preedit string with PREEDIT_TYPE_NONE style * Fix bug candidate word couldn't be selected with up/down key in the preedit status * Edje textblock: Improved textblock fit. + * fix anchor clicked mouse signals for selection-enabled entries diff --git a/src/lib/edje/edje_entry.c b/src/lib/edje/edje_entry.c index 23711d4468..80dfbc355b 100644 --- a/src/lib/edje/edje_entry.c +++ b/src/lib/edje/edje_entry.c @@ -688,17 +688,18 @@ _edje_anchor_mouse_up_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_ (!rp->typedata.text)) return; en = rp->typedata.text->entry_data; ignored = rp->part->ignore_flags & ev->event_flags; - if ((rp->part->select_mode == EDJE_ENTRY_SELECTION_MODE_EXPLICIT) && - (en->select_allow)) - return; n = an->name; if (!n) n = ""; len = 200 + strlen(n); buf = alloca(len); - if ((!ev->event_flags) || (!ignored)) + if ((rp->part->select_mode != EDJE_ENTRY_SELECTION_MODE_EXPLICIT) || + (!en->select_allow)) { - snprintf(buf, len, "anchor,mouse,up,%i,%s", ev->button, n); - _edje_emit(rp->edje, buf, rp->part->name); + if ((!ev->event_flags) || (!ignored)) + { + snprintf(buf, len, "anchor,mouse,up,%i,%s", ev->button, n); + _edje_emit(rp->edje, buf, rp->part->name); + } } if ((rp->still_in) && (rp->clicked_button == ev->button) && (!ignored)) {