Revert "Genlist: restore old behaviour of item next/prev in group items"

This reverts commit f0a0da9f44.

As per T5938 seems we really want to restore a totally wrong
behaviour, without taking care of newer apps being broken.

I revert this for now, but I'm still convinced that we must
find a way to let user use a sane ordering for newer app.

I'm thinking about adding an api in genlist to let the widget
use the new sane ordering, something like
elm_genlist_fixed_ordering_set(bool) so that new apps can use
this to ensure correct behaviour. zmike what do you think about
this solution?
This commit is contained in:
Davide Andreoli 2018-04-17 00:11:11 +02:00
parent ad6ef48053
commit 01a95d1f40
1 changed files with 2 additions and 18 deletions

View File

@ -6958,12 +6958,6 @@ _elm_genlist_next_item_get_insane(Elm_Genlist_Data *sd, Elm_Gen_Item *it)
if (sd->filter && !_item_filtered_get(it2))
continue;
// Insanity does not apply for group items
// (group and normal items was treated in a flat way)
if (it->item->type == ELM_GENLIST_ITEM_GROUP ||
it2->item->type == ELM_GENLIST_ITEM_GROUP)
return EO_OBJ(it2);
// 1. Return next sibling in list, if any
if (it->parent == it2->parent)
return EO_OBJ(it2);
@ -6987,7 +6981,7 @@ _elm_genlist_next_item_get_insane(Elm_Genlist_Data *sd, Elm_Gen_Item *it)
return EO_OBJ(it->parent);
}
/* if item is already last item, return its parent if a parent exists */
if (it->parent && it->parent->item->type != ELM_GENLIST_ITEM_GROUP)
if (it->parent)
return EO_OBJ(it->parent);
return EO_OBJ(it2);
}
@ -7007,16 +7001,6 @@ _elm_genlist_prev_item_get_insane(Elm_Genlist_Data *sd, Elm_Gen_Item *it)
return EO_OBJ(it2);
}
// Insanity does not apply for group items
// (group and normal items was treated in a flat way)
if (it->item->type == ELM_GENLIST_ITEM_GROUP)
{
for (it2 = ELM_GEN_ITEM_PREV(it); it2; it2 = ELM_GEN_ITEM_PREV(it2))
if (!sd->filter || _item_filtered_get(it2))
break;
return EO_OBJ(it2);
}
parent = it->parent;
if (!parent)
{
@ -7036,7 +7020,7 @@ _elm_genlist_prev_item_get_insane(Elm_Genlist_Data *sd, Elm_Gen_Item *it)
}
it2 = ELM_GEN_ITEM_PREV(it);
if (it2 == parent && it2->item->type != ELM_GENLIST_ITEM_GROUP)
if (it2 == parent)
return _elm_genlist_prev_item_get_insane(sd, it2);
return EO_OBJ(it2);