Hi Hermet,

    I have a problem with selection. Bug is in commit 
3dc73cfcdb4fb6638cba2c5e0c97c5729a55f39b.
    The problem is: I select item with API and then click on another 
item. First item remains selected.
    I don't know it there is such example in elementary test, because I 
see such behaviour in my app.

Yakov


On 01/08/2015 04:15 AM, ChunEon Park wrote:
> fixed.
> thank you.
>
> ------------------------------------
> -Regards, Hermet-
>
> -----Original Message-----
> From: "ChunEon Park"<her...@naver.com>
> To: "Daniel Zaoui"<daniel.za...@samsung.com>; "Enlightenment developer 
> list"<enlightenment-devel@lists.sourceforge.net>;
> Cc:
> Sent: 2015-01-08 (목) 10:58:51
> Subject: Re: [E-devel] [EGIT] [core/elementary] master 01/01: genlist: 
> refactor code.
>   
> thank you.
> i will check.
> ------------------------------------
> -Regards, Hermet-
>
> -----Original Message-----
> From: "Daniel Zaoui"<daniel.za...@samsung.com>
> To: "Enlightenment developer 
> list"<enlightenment-devel@lists.sourceforge.net>; <her...@hermet.pe.kr>;
> Cc:
> Sent: 2015-01-07 (수) 17:52:06
> Subject: Re: [EGIT] [core/elementary] master 01/01: genlist: refactor code.
>   
> Hi Hermet,
>
> Please check elm_test on genlist 3. Click fast on an item and you will
> see a beautiful segfault.
> It is due to the fact that selected list is composed of Elm_Object_Item
> (Eo) and not Elm_Gen_Item.
>
> Thanks to ya-kov for spotting this.
>
> D2
>
> On 01/06/15 13:16, ChunEon Park wrote:
>> hermet pushed a commit to branch master.
>>
>> http://git.enlightenment.org/core/elementary.git/commit/?id=3dc73cfcdb4fb6638cba2c5e0c97c5729a55f39b
>>
>> commit 3dc73cfcdb4fb6638cba2c5e0c97c5729a55f39b
>> Author: ChunEon Park <her...@hermet.pe.kr>
>> Date:   Tue Jan 6 20:17:03 2015 +0900
>>
>>      genlist: refactor code.
>>      
>>      select/unselect items by using common select function.
>> ---
>>   src/lib/elm_genlist.c  42 +++++++++++++++++-------------------------
>>   1 file changed, 17 insertions(+), 25 deletions(-)
>>
>> diff --git a/src/lib/elm_genlist.c b/src/lib/elm_genlist.c
>> index f9b4b53..fbfbeb4 100644
>> --- a/src/lib/elm_genlist.c
>> +++ b/src/lib/elm_genlist.c
>> @@ -5705,20 +5705,29 @@ _item_select(Elm_Gen_Item *it)
>>      ELM_GENLIST_DATA_GET_FROM_ITEM(it, sd);
>>      Elm_Object_Item *eo_it = EO_OBJ(it);
>>   
>> +   if (eo_do(eo_it, elm_wdg_item_disabled_get())) return;
>> +
>>      if (_is_no_select(it)
>>          (it->generation < sd->generation)
>>          (it->decorate_it_set))
>>        return;
>>   
>> +   if (!sd->multi)
>> +     {
>> +        const Eina_List *l, *ll;
>> +        Elm_Gen_Item *it2;
>> +        EINA_LIST_FOREACH_SAFE(sd->selected, l, ll, it2)
>> +         {
>> +            if (it2 != it) _item_unselect(it2);
>> +         }
>> +     }
>> +
>>      if (!it->selected)
>>        {
>>           it->selected = EINA_TRUE;
>>           sd->selected =
>>             eina_list_append(sd->selected, eo_it);
>>        }
>> -   else if ((sd->select_mode != ELM_OBJECT_SELECT_MODE_ALWAYS) &&
>> -            (it->select_mode != ELM_OBJECT_SELECT_MODE_ALWAYS))
>> -     return;
>>   
>>      evas_object_ref(obj);
>>      it->walking++;
>> @@ -6531,31 +6540,14 @@ _elm_genlist_item_selected_set(Eo *eo_item 
>> EINA_UNUSED, Elm_Gen_Item *it,
>>      ELM_GENLIST_ITEM_CHECK_OR_RETURN(it);
>>      ELM_GENLIST_DATA_GET_FROM_ITEM(it, sd);
>>   
>> -   if ((it->generation < sd->generation)  eo_do(EO_OBJ(it), 
>> elm_wdg_item_disabled_get()))
>> -     return;
>> +   if ((it->generation < sd->generation)
>> +       eo_do(EO_OBJ(it), elm_wdg_item_disabled_get())) return;
>> +
>>      selected = !!selected;
>>      if (it->selected == selected) return;
>>   
>> -   if (selected)
>> -     {
>> -        if (!sd->multi)
>> -          {
>> -             while (sd->selected)
>> -               {
>> -                  Elm_Object_Item *eo_sel = sd->selected->data;
>> -                  ELM_GENLIST_ITEM_DATA_GET(eo_sel, sel);
>> -                  if (it->unhighlight_cb)
>> -                    it->unhighlight_cb(sel);
>> -                  it->unsel_cb(sel);
>> -               }
>> -          }
>> -        it->highlight_cb(it);
>> -        it->sel_cb(it);
>> -
>> -        return;
>> -     }
>> -   if (it->unhighlight_cb) it->unhighlight_cb(it);
>> -   it->unsel_cb(it);
>> +   if (selected) _item_select(it);
>> +   else _item_unselect(it);
>>   }
>>   
>>   EOLIAN static Eina_Bool
>>
> ------------------------------------------------------------------------------
> Dive into the World of Parallel Programming! The Go Parallel Website,
> sponsored by Intel and developed in partnership with Slashdot Media, is your
> hub for all things parallel software development, from weekly thought
> leadership blogs to news, videos, case studies, tutorials and more. Take a
> look and join the conversation now. http://goparallel.sourceforge.net
> _______________________________________________
> enlightenment-devel mailing list
> enlightenment-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
> ------------------------------------------------------------------------------
> Dive into the World of Parallel Programming! The Go Parallel Website,
> sponsored by Intel and developed in partnership with Slashdot Media, is your
> hub for all things parallel software development, from weekly thought
> leadership blogs to news, videos, case studies, tutorials and more. Take a
> look and join the conversation now. http://goparallel.sourceforge.net
> _______________________________________________
> enlightenment-devel mailing list
> enlightenment-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel



------------------------------------------------------------------------------
Dive into the World of Parallel Programming! The Go Parallel Website,
sponsored by Intel and developed in partnership with Slashdot Media, is your
hub for all things parallel software development, from weekly thought
leadership blogs to news, videos, case studies, tutorials and more. Take a
look and join the conversation now. http://goparallel.sourceforge.net
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to