diff options
author | Dave Andreoli <dave@gurumeditation.it> | 2016-01-24 16:44:57 +0100 |
---|---|---|
committer | Dave Andreoli <dave@gurumeditation.it> | 2016-01-24 16:44:57 +0100 |
commit | d92869633ffeca83acd3f3389368bd60d1e43854 (patch) | |
tree | 4a9e693712966f9e668cd923f48979b291919169 | |
parent | 359bec5756d38a14158e6b2c64f86aaba2cfcd28 (diff) | |
download | elementary-d92869633ffeca83acd3f3389368bd60d1e43854.tar.gz |
Genlist: do not select the item two times in case of a double click.
In the case of a genlist set as ELM_OBJECT_SELECT_MODE_ALWAYS the "selected" cb was called 2 times. This @fix that by skipping the selection code in case the click is not the first one (EVAS_BUTTON_NONE).
Also merge the conditions of two consecutive "if" in a single statement.
-rw-r--r-- | src/lib/elm_genlist.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/lib/elm_genlist.c b/src/lib/elm_genlist.c index 572e734c5..2f57dead1 100644 --- a/src/lib/elm_genlist.c +++ b/src/lib/elm_genlist.c @@ -4881,12 +4881,13 @@ _item_mouse_up_cb(void *data, } } - if (_is_no_select(it) || + if ((ev->flags != EVAS_BUTTON_NONE) || + (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD) || + !it->base->still_in || + _is_no_select(it) || (eo_do_ret(EO_OBJ(it), tmp, elm_wdg_item_disabled_get()))) return; - if (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD || !it->base->still_in) return; - evas_object_ref(sd->obj); if (sd->multi && @@ -4928,7 +4929,7 @@ _item_mouse_up_cb(void *data, if (_item_select(it)) goto deleted; } - if ((ev->flags == EVAS_BUTTON_NONE) && (sd->focused_item != EO_OBJ(it))) + if (sd->focused_item != EO_OBJ(it)) elm_object_item_focus_set(EO_OBJ(it), EINA_TRUE); deleted: |