diff --git a/src/group_gui.cpp b/src/group_gui.cpp --- a/src/group_gui.cpp +++ b/src/group_gui.cpp @@ -122,14 +122,13 @@ private: Dimension column_size[VGC_END]; ///< Size of the columns in the group list. - void AddParents(GUIGroupList *source, GroupID parent, int indent) + void AddChildren(GUIGroupList *source, GroupID parent, int indent) { for (const Group **g = source->Begin(); g != source->End(); g++) { - if ((*g)->parent == parent) { - *this->groups.Append() = *g; - *this->indents.Append() = indent; - AddParents(source, (*g)->index, indent + 1); - } + if ((*g)->parent != parent) continue; + *this->groups.Append() = *g; + *this->indents.Append() = indent; + AddChildren(source, (*g)->index, indent + 1); } } @@ -180,7 +179,7 @@ private: list.ForceResort(); list.Sort(&GroupNameSorter); - AddParents(&list, INVALID_GROUP, 0); + AddChildren(&list, INVALID_GROUP, 0); this->groups.Compact(); this->groups.RebuildDone();