I think this needs to be changed to use "multiple select mode" not a "normal select mode"
1. Multiple select mode is not relevant to a normal select mode and they could be used at the same time. ex) ELM_OBJECT_MULTIPLE_SELECT_MODE_WITH_CONTROL & ELM_OBJECT_SELECT_MODE_DEFAULT/ALWAYS/NONE/DISPLAY_ONLY 2. This is valid only when multi select mode is on. 3. Elm_Object_Select_Mode can be set differently for each item. But multi select mode is not. Daniel Juyung Seo (SeoZ) On Sat, Nov 2, 2013 at 8:54 PM, Ryuan Choi <ryuan.c...@gmail.com> wrote: > raster pushed a commit to branch master. > > > http://git.enlightenment.org/core/elementary.git/commit/?id=5618d0c57f58bad9898e4f78e1cceb1e8d51d9c3 > > commit 5618d0c57f58bad9898e4f78e1cceb1e8d51d9c3 > Author: Ryuan Choi <ryuan.c...@gmail.com> > Date: Sat Nov 2 20:50:59 2013 +0900 > > genlist, gengrid: Add ELM_OBJECT_MULTIPLE_SELECT_MODE_WITH_CONTROL > > Summary: > Some applications like file viewer allow multiple selection only with > Control key was pressed. > > Reviewers: seoz, raster > > Reviewed By: raster > > Differential Revision: https://phab.enlightenment.org/D251 > > Conflicts: > ChangeLog > NEWS > --- > ChangeLog | 6 ++++++ > NEWS | 1 + > src/lib/elm_general.h | 1 + > src/lib/elm_gengrid.c | 4 +++- > src/lib/elm_gengrid_legacy.h | 4 ++++ > src/lib/elm_genlist.c | 4 +++- > src/lib/elm_genlist_legacy.h | 4 ++++ > 7 files changed, 22 insertions(+), 2 deletions(-) > > diff --git a/ChangeLog b/ChangeLog > index 0060f0a..66e4536 100644 > --- a/ChangeLog > +++ b/ChangeLog > @@ -1735,3 +1735,9 @@ > 2013-10-30 Shilpa Onkar Singh > > * slider: Added elm_slider_step_get(), elm_slider_step_set(). > + > +2013-10-02 Ryuan Choi (ryuan) > + > + * genlist , gengrid: Add > ELM_OBJECT_MULTIPLE_SELECT_MODE_WITH_CONTROL. > + It disallow multiple selection when clicked without control > pressed although > + multiple selection is enabled. > diff --git a/NEWS b/NEWS > index 9342851..4ba58bf 100644 > --- a/NEWS > +++ b/NEWS > @@ -101,6 +101,7 @@ Additions: > * Add support for "clicked" callback on Return/space/KP_Enter key > press for image. > * Add "virtualkeypad,size,changed" callback on virtualkeypad min size > change for conformant. > * Add elm_slider_step_get(), elm_slider_step_set() for slider. > + * Add ELM_OBJECT_MULTIPLE_SELECT_MODE_WITH_CONTROL select mode for > genlist/gengrid. > > Improvements: > > diff --git a/src/lib/elm_general.h b/src/lib/elm_general.h > index 2ad5d2d..9f5e140 100644 > --- a/src/lib/elm_general.h > +++ b/src/lib/elm_general.h > @@ -126,6 +126,7 @@ typedef enum > ELM_OBJECT_SELECT_MODE_ALWAYS, /**< always select mode */ > ELM_OBJECT_SELECT_MODE_NONE, /**< no select mode */ > ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY, /**< no select mode with no > finger size rule*/ > + ELM_OBJECT_MULTIPLE_SELECT_MODE_WITH_CONTROL, /**< disallow mutiple > selection when clicked without control key pressed */ > ELM_OBJECT_SELECT_MODE_MAX > } Elm_Object_Select_Mode; > > diff --git a/src/lib/elm_gengrid.c b/src/lib/elm_gengrid.c > index b315bf5..883d4fb 100644 > --- a/src/lib/elm_gengrid.c > +++ b/src/lib/elm_gengrid.c > @@ -596,7 +596,9 @@ _item_mouse_up_cb(void *data, > _elm_gengrid_item_unrealize(it, EINA_FALSE); > } > if (elm_widget_item_disabled_get(it) || (dragged)) return; > - if (sd->multi) > + if (sd->multi && > + ((sd->select_mode != ELM_OBJECT_MULTIPLE_SELECT_MODE_WITH_CONTROL) > || > + (evas_key_modifier_is_set(ev->modifiers, "Control")))) > { > if (!it->selected) > { > diff --git a/src/lib/elm_gengrid_legacy.h b/src/lib/elm_gengrid_legacy.h > index f55edc0..0f09c70 100644 > --- a/src/lib/elm_gengrid_legacy.h > +++ b/src/lib/elm_gengrid_legacy.h > @@ -799,8 +799,12 @@ EAPI Eina_Bool > elm_gengrid_filled_get(const Evas_Object *obj > * - ELM_OBJECT_SELECT_MODE_NONE : This will turn off the ability to > select items > * entirely and they will neither appear selected nor call selected > * callback functions. > + * - ELM_OBJECT_MULTIPLE_SELECT_MODE_WITH_CONTROL : Only one item will be > selected > + * although multi-selection is enabled, if clicked without pressing > control > + * key. This mode is only available with multi-selection. > * > * @see elm_gengrid_select_mode_get() > + * @see elm_gengrid_multi_select_set() > * > * @ingroup Gengrid > */ > diff --git a/src/lib/elm_genlist.c b/src/lib/elm_genlist.c > index ff3c8b0..cdb27be 100644 > --- a/src/lib/elm_genlist.c > +++ b/src/lib/elm_genlist.c > @@ -4220,7 +4220,9 @@ _item_mouse_up_cb(void *data, > return; > > if (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD) return; > - if (sd->multi) > + if (sd->multi && > + ((sd->select_mode != ELM_OBJECT_MULTIPLE_SELECT_MODE_WITH_CONTROL) > || > + (evas_key_modifier_is_set(ev->modifiers, "Control")))) > { > if (!it->selected) > { > diff --git a/src/lib/elm_genlist_legacy.h b/src/lib/elm_genlist_legacy.h > index 3332d32..d1a02fc 100644 > --- a/src/lib/elm_genlist_legacy.h > +++ b/src/lib/elm_genlist_legacy.h > @@ -575,8 +575,12 @@ EAPI Eina_Bool > elm_genlist_tree_effect_enabled_get(const Evas_Object *o > * - ELM_OBJECT_SELECT_MODE_NONE : This will turn off the ability to > select items > * entirely and they will neither appear selected nor call selected > * callback functions. > + * - ELM_OBJECT_MULTIPLE_SELECT_MODE_WITH_CONTROL : Only one item will be > selected > + * although multi-selection is enabled, if clicked without pressing > control > + * key. This mode is only available with multi-selection. > * > * @see elm_genlist_select_mode_get() > + * @see elm_genlist_multi_select_set() > * > * @ingroup Genlist > */ > > -- > > > ------------------------------------------------------------------------------ Android is increasing in popularity, but the open development platform that developers love is also attractive to malware creators. Download this white paper to learn more about secure code signing practices that can help keep Android apps secure. http://pubads.g.doubleclick.net/gampad/clk?id=65839951&iu=/4140/ostg.clktrk _______________________________________________ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel