diff options
author | mano-wii <germano.costa@ig.com.br> | 2019-07-17 20:17:16 +0300 |
---|---|---|
committer | mano-wii <germano.costa@ig.com.br> | 2019-07-17 20:17:34 +0300 |
commit | 709f126e8143da4fa28a08a94e13581c68ab6b29 (patch) | |
tree | 3c1d1bf71376904c4816af0d16a5c11cde639ddf /source/blender/editors/armature/armature_edit.c | |
parent | 4ddc7e8d1b2c22463d4d181d8bb3bb9bb17b1b35 (diff) |
Fix T59713: Armature layer dots not updated on changes
`layer_used` runtime data, which controls the drawing of dots in the UI was not getting refreshed properly.
This used to happen in the drawing code, but was no longer working for reasons explained in:
{rB2b09062defa093a243b5fe64b099accb07b440a3}
The solution was to update each layer manually in the operators:
* ARMATURE_OT_bone_primitive_add
* ARMATURE_OT_delete
* ARMATURE_OT_dissolve
* ARMATURE_OT_fill
* ARMATURE_OT_merge
* ARMATURE_OT_separate
* ARMATURE_OT_bone_layers
* POSE_OT_bone_layers
Differential Revision: https://developer.blender.org/D5281
Diffstat (limited to 'source/blender/editors/armature/armature_edit.c')
-rw-r--r-- | source/blender/editors/armature/armature_edit.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/source/blender/editors/armature/armature_edit.c b/source/blender/editors/armature/armature_edit.c index c5430e06b6e..4e6661b1d15 100644 --- a/source/blender/editors/armature/armature_edit.c +++ b/source/blender/editors/armature/armature_edit.c @@ -862,6 +862,7 @@ static int armature_fill_bones_exec(bContext *C, wmOperator *op) } /* updates */ + ED_armature_edit_refresh_layer_used(arm); WM_event_add_notifier(C, NC_OBJECT | ND_POSE, obedit); /* free points */ @@ -1053,6 +1054,7 @@ static int armature_merge_exec(bContext *C, wmOperator *op) /* updates */ ED_armature_edit_sync_selection(arm->edbo); + ED_armature_edit_refresh_layer_used(arm); WM_event_add_notifier(C, NC_OBJECT | ND_POSE, obedit); } MEM_freeN(objects); @@ -1460,8 +1462,8 @@ static int armature_delete_selected_exec(bContext *C, wmOperator *UNUSED(op)) changed_multi = true; ED_armature_edit_sync_selection(arm->edbo); + ED_armature_edit_refresh_layer_used(arm); BKE_pose_tag_recalc(CTX_data_main(C), obedit->pose); - WM_event_add_notifier(C, NC_OBJECT | ND_BONE_SELECT, obedit); } } @@ -1635,6 +1637,7 @@ static int armature_dissolve_selected_exec(bContext *C, wmOperator *UNUSED(op)) if (changed) { changed_multi = true; ED_armature_edit_sync_selection(arm->edbo); + ED_armature_edit_refresh_layer_used(arm); WM_event_add_notifier(C, NC_OBJECT | ND_BONE_SELECT, obedit); } } |