Commit: 9b2a4c67656ebc40a1026dd0e5f59b40446a5a1a
Author: Severin
Date: Mon Jul 2 02:09:32 2018 +0200
Branches: temp-tab_drag_drop
https://developer.blender.org/rB9b2a4c67656ebc40a1026dd0e5f59b40446a5a1a
Fix error in reordering after new items were added.
===================================================================
M source/blender/editors/interface/interface_templates.c
===================================================================
diff --git a/source/blender/editors/interface/interface_templates.c
b/source/blender/editors/interface/interface_templates.c
index 53a59a12b89..b890e8b38b0 100644
--- a/source/blender/editors/interface/interface_templates.c
+++ b/source/blender/editors/interface/interface_templates.c
@@ -197,10 +197,16 @@ static void ui_template_sortable_id_tabs(
group->reordered_indices = MEM_recallocN(
group->reordered_indices,
sizeof(*group->reordered_indices) * group->tot_items);
ui_button_group_find_new_items(group, &items, old_tot_items,
&new_items);
+
/* Add new items at the end of the list. */
- const int tot_new_items = ABS(group->tot_items - old_tot_items);
+ const int tot_new_items = group->tot_items - old_tot_items;
+
+ BLI_assert(BLI_listbase_count(&new_items) == tot_new_items);
int i = 0;
for (uiButtonGroupItemInfo *new_item = new_items.first;
new_item; new_item = new_item->next, i++) {
+ for (int j = group->tot_items - tot_new_items + i; j >
new_item->position_index; j--) {
+ group->reordered_indices[j] =
group->reordered_indices[j - 1];
+ }
group->reordered_indices[new_item->position_index] =
group->tot_items - tot_new_items + i;
}
BLI_freelistN(&new_items);
_______________________________________________
Bf-blender-cvs mailing list
[email protected]
https://lists.blender.org/mailman/listinfo/bf-blender-cvs