On Fri, 29 Mar 2013 23:00:34 +0900 Daniel Juyung Seo <[email protected]>
said:

wtf... no conflicts at all .. gah! git! why u no work right!

> WTF is this?
> This patch was not rebased with the latest elementary and this removed some
> of the latest codes :(
> I will fix it.
> 
> Daniel Juyung Seo (SeoZ)
> 
> 
> On Fri, Mar 29, 2013 at 10:23 PM, Tae-Hwan Kim - Enlightenment Git <
> [email protected]> wrote:
> 
> > raster pushed a commit to branch master.
> >
> > commit 3f4c3e03c600c87782543cf08de886016f2c192e
> > Author: Tae-Hwan Kim <[email protected]>
> > Date:   Fri Mar 29 22:23:38 2013 +0900
> >
> >     Because of relcount, genlist items cannot be deleted immediately.
> >     If we use reverse relatvie lists, we can delete item immediately.
> > ---
> >  src/lib/elm_genlist.c        | 53
> > +++++++++++++++-----------------------------
> >  src/lib/elm_widget_genlist.h |  1 +
> >  2 files changed, 19 insertions(+), 35 deletions(-)
> >
> > diff --git a/src/lib/elm_genlist.c b/src/lib/elm_genlist.c
> > index 3672714..9af7f22 100644
> > --- a/src/lib/elm_genlist.c
> > +++ b/src/lib/elm_genlist.c
> > @@ -2917,7 +2917,7 @@ _elm_genlist_item_del_not_serious(Elm_Gen_Item *it)
> >                                                       * the item is
> >                                                       * deleted */
> >
> > -   if ((it->relcount > 0) || (it->walking > 0)) return;
> > +   if (it->walking > 0) return;
> >
> >     if (it->selected)
> >       GL_IT(it)->wsd->selected =
> > @@ -3499,20 +3499,12 @@ _item_block_new(Elm_Genlist_Smart_Data *sd,
> >     return itb;
> >  }
> >
> > -/**
> > - * @internal
> > - *
> > - * This function adds an item to a block's item list. This may or may not
> > - * rearrange existing blocks and create a new block.
> > - *
> > - */
> >  static Eina_Bool
> >  _item_block_add(Elm_Genlist_Smart_Data *sd,
> >                  Elm_Gen_Item *it)
> >  {
> >     Item_Block *itb = NULL;
> >
> > -   // when a new item does not depend on another item
> >     if (!it->item->rel)
> >       {
> >  newblock:
> > @@ -3580,7 +3572,6 @@ newblock:
> >            }
> >          else
> >            {
> > -             // item move_before, prepend, insert_before, sorted_insert
> > with before
> >               if (it->item->before)
> >                 {
> >                    if (sd->blocks)
> > @@ -3601,7 +3592,6 @@ newblock:
> >
> >                    _item_position_update(itb->items, 0);
> >                 }
> > -             // item move_after, append, insert_after, sorted_insert
> > without before
> >               else
> >                 {
> >                    if (sd->blocks)
> > @@ -3623,7 +3613,6 @@ newblock:
> >                 }
> >            }
> >       }
> > -   // when a new item depends on another item
> >     else
> >       {
> >          Eina_List *tmp;
> > @@ -3666,17 +3655,6 @@ newblock:
> >     it->item->block = itb;
> >     if (itb->sd->calc_job) ecore_job_del(itb->sd->calc_job);
> >     itb->sd->calc_job = ecore_job_add(_calc_job, itb->sd);
> > -   if (it->item->rel)
> > -     {
> > -        it->item->rel->relcount--;
> > -        if ((it->item->rel->generation < GL_IT(it)->wsd->generation)
> > -            && (!it->item->rel->relcount))
> > -          {
> > -             _item_del(it->item->rel);
> > -             elm_widget_item_free(it->item->rel);
> > -          }
> > -        it->item->rel = NULL;
> > -     }
> >
> >     if (itb->count > itb->sd->max_items_per_block)
> >       {
> > @@ -3939,7 +3917,7 @@ _item_move_after(Elm_Gen_Item *it,
> >     GL_IT(it)->wsd->items = eina_inlist_append_relative
> >         (GL_IT(it)->wsd->items, EINA_INLIST_GET(it),
> > EINA_INLIST_GET(after));
> >     it->item->rel = after;
> > -   it->item->rel->relcount++;
> > +   after->item->rel_revs = eina_list_append(after->item->rel_revs, it);
> >     it->item->before = EINA_FALSE;
> >     if (after->item->group_item) it->item->group_item =
> > after->item->group_item;
> >     _item_queue(GL_IT(it)->wsd, it, NULL);
> > @@ -4010,7 +3988,7 @@ _item_move_before(Elm_Gen_Item *it,
> >     GL_IT(it)->wsd->items = eina_inlist_prepend_relative
> >         (GL_IT(it)->wsd->items, EINA_INLIST_GET(it),
> > EINA_INLIST_GET(before));
> >     it->item->rel = before;
> > -   it->item->rel->relcount++;
> > +   before->item->rel_revs = eina_list_append(before->item->rel_revs, it);
> >     it->item->before = EINA_TRUE;
> >     if (before->item->group_item)
> >       it->item->group_item = before->item->group_item;
> > @@ -5060,11 +5038,8 @@ _item_select(Elm_Gen_Item *it)
> >       {
> >          if ((!it->walking) && (it->generation <
> > GL_IT(it)->wsd->generation))
> >            {
> > -             if (!it->relcount)
> > -               {
> > -                  it->del_cb(it);
> > -                  elm_widget_item_free(it);
> > -               }
> > +             it->del_cb(it);
> > +             elm_widget_item_free(it);
> >            }
> >          else
> >            GL_IT(it)->wsd->last_selected_item = (Elm_Object_Item *)it;
> > @@ -5141,6 +5116,15 @@ _item_del_pre_hook(Elm_Object_Item *item)
> >
> >     if ((it->relcount > 0) || (it->walking > 0))
> >       {
> > +     // FIXME: relative will be better to be fixed. it is too harsh.
> > +      if (it->item->rel)
> > +        it->item->rel->item->rel_revs =
> > +          eina_list_remove(it->item->rel->item->rel_revs, it);
> > +      if (it->item->rel_revs)
> > +         {
> > +           Elm_Gen_Item *tmp;
> > +           EINA_LIST_FREE(it->item->rel_revs, tmp) tmp->item->rel = NULL;
> > +         }
> >          elm_genlist_item_subitems_clear(item);
> >          if (GL_IT(it)->wsd->show_item == it)
> >            GL_IT(it)->wsd->show_item = NULL;
> > @@ -5329,7 +5313,7 @@ _item_append(Eo *obj EINA_UNUSED, void *_pd, va_list
> > *list)
> >          sd->items = eina_inlist_append_relative
> >              (sd->items, EINA_INLIST_GET(it), EINA_INLIST_GET(it2));
> >          it->item->rel = it2;
> > -        it->item->rel->relcount++;
> > +        it2->item->rel_revs = eina_list_append(it2->item->rel_revs, it);
> >       }
> >     it->item->before = EINA_FALSE;
> >     _item_queue(sd, it, NULL);
> > @@ -5390,7 +5374,7 @@ _item_prepend(Eo *obj EINA_UNUSED, void *_pd,
> > va_list *list)
> >          sd->items = eina_inlist_prepend_relative
> >              (sd->items, EINA_INLIST_GET(it), EINA_INLIST_GET(it2));
> >          it->item->rel = it2;
> > -        it->item->rel->relcount++;
> > +        it2->item->rel_revs = eina_list_append(it2->item->rel_revs, it);
> >       }
> >     it->item->before = EINA_TRUE;
> >     _item_queue(sd, it, NULL);
> > @@ -5457,7 +5441,7 @@ _item_insert_after(Eo *obj EINA_UNUSED, void *_pd,
> > va_list *list)
> >         (sd->items, EINA_INLIST_GET(it), EINA_INLIST_GET(after));
> >
> >     it->item->rel = after;
> > -   it->item->rel->relcount++;
> > +   after->item->rel_revs = eina_list_append(after->item->rel_revs, it);
> >     it->item->before = EINA_FALSE;
> >     _item_queue(sd, it, NULL);
> >
> > @@ -5522,7 +5506,6 @@ _item_insert_before(Eo *obj EINA_UNUSED, void *_pd,
> > va_list *list)
> >         (sd->items, EINA_INLIST_GET(it), EINA_INLIST_GET(before));
> >
> >     it->item->rel = before;
> > -   it->item->rel->relcount++;
> >     it->item->before = EINA_TRUE;
> >     _item_queue(sd, it, NULL);
> >
> > @@ -5631,7 +5614,7 @@ _item_sorted_insert(Eo *obj EINA_UNUSED, void *_pd,
> > va_list *list)
> >     if (rel)
> >       {
> >          it->item->rel = rel;
> > -        it->item->rel->relcount++;
> > +        rel->item->rel_revs = eina_list_append(rel->item->rel_revs, it);
> >       }
> >
> >     _item_queue(sd, it, _elm_genlist_item_list_compare);
> > diff --git a/src/lib/elm_widget_genlist.h b/src/lib/elm_widget_genlist.h
> > index d001cfc..6a24d66 100644
> > --- a/src/lib/elm_widget_genlist.h
> > +++ b/src/lib/elm_widget_genlist.h
> > @@ -200,6 +200,7 @@ struct Elm_Gen_Item_Type
> >     Evas_Coord              scrl_x, scrl_y, old_scrl_y;
> >
> >     Elm_Gen_Item           *rel;
> > +   Eina_List              *rel_revs; // FIXME: find better way not to use
> > this
> >     Evas_Object            *deco_it_view;
> >     int                     expanded_depth;
> >     int                     order_num_in;
> >
> > --
> >
> >
> > ------------------------------------------------------------------------------
> > Own the Future-Intel(R) Level Up Game Demo Contest 2013
> > Rise to greatness in Intel's independent game demo contest. Compete
> > for recognition, cash, and the chance to get your game on Steam.
> > $5K grand prize plus 10 genre and skill prizes. Submit your demo
> > by 6/6/13. http://altfarm.mediaplex.com/ad/ck/12124-176961-30367-2
> >
> ------------------------------------------------------------------------------
> Own the Future-Intel(R) Level Up Game Demo Contest 2013
> Rise to greatness in Intel's independent game demo contest. Compete 
> for recognition, cash, and the chance to get your game on Steam. 
> $5K grand prize plus 10 genre and skill prizes. Submit your demo 
> by 6/6/13. http://altfarm.mediaplex.com/ad/ck/12124-176961-30367-2
> _______________________________________________
> enlightenment-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
> 


-- 
------------- Codito, ergo sum - "I code, therefore I am" --------------
The Rasterman (Carsten Haitzler)    [email protected]


------------------------------------------------------------------------------
Own the Future-Intel(R) Level Up Game Demo Contest 2013
Rise to greatness in Intel's independent game demo contest. Compete 
for recognition, cash, and the chance to get your game on Steam. 
$5K grand prize plus 10 genre and skill prizes. Submit your demo 
by 6/6/13. http://altfarm.mediaplex.com/ad/ck/12124-176961-30367-2
_______________________________________________
enlightenment-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to