diff options
Diffstat (limited to 'source/blender/editors/armature/armature_select.c')
-rw-r--r-- | source/blender/editors/armature/armature_select.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/source/blender/editors/armature/armature_select.c b/source/blender/editors/armature/armature_select.c index c37f9ce126b..0f288c0d8b8 100644 --- a/source/blender/editors/armature/armature_select.c +++ b/source/blender/editors/armature/armature_select.c @@ -363,6 +363,7 @@ static int armature_select_linked_invoke(bContext *C, wmOperator *op, const wmEv ED_armature_edit_sync_selection(arm->edbo); WM_event_add_notifier(C, NC_OBJECT | ND_BONE_SELECT, base->object); + DEG_id_tag_update(&arm->id, ID_RECALC_COPY_ON_WRITE); return OPERATOR_FINISHED; } @@ -792,6 +793,7 @@ bool ED_armature_edit_select_pick( } WM_event_add_notifier(C, NC_OBJECT | ND_BONE_SELECT, basact->object); + DEG_id_tag_update(&arm->id, ID_RECALC_COPY_ON_WRITE); return true; } @@ -1037,6 +1039,10 @@ static int armature_de_select_all_exec(bContext *C, wmOperator *op) WM_event_add_notifier(C, NC_OBJECT | ND_BONE_SELECT, NULL); + /* Tagging only one object to refresh drawing. */ + Object *obedit = CTX_data_edit_object(C); + DEG_id_tag_update(&obedit->id, ID_RECALC_SELECT); + return OPERATOR_FINISHED; } @@ -1154,6 +1160,7 @@ static int armature_de_select_more_exec(bContext *C, wmOperator *UNUSED(op)) Object *ob = objects[ob_index]; armature_select_more_less(ob, true); WM_event_add_notifier(C, NC_OBJECT | ND_BONE_SELECT, ob); + DEG_id_tag_update(&ob->id, ID_RECALC_COPY_ON_WRITE); } MEM_freeN(objects); @@ -1186,6 +1193,7 @@ static int armature_de_select_less_exec(bContext *C, wmOperator *UNUSED(op)) Object *ob = objects[ob_index]; armature_select_more_less(ob, false); WM_event_add_notifier(C, NC_OBJECT | ND_BONE_SELECT, ob); + DEG_id_tag_update(&ob->id, ID_RECALC_COPY_ON_WRITE); } MEM_freeN(objects); @@ -1274,6 +1282,7 @@ static void select_similar_length(bContext *C, const float thresh) if (changed) { WM_event_add_notifier(C, NC_OBJECT | ND_BONE_SELECT, ob); + DEG_id_tag_update(&ob->id, ID_RECALC_COPY_ON_WRITE); } } MEM_freeN(objects); @@ -1323,6 +1332,8 @@ static void select_similar_direction(bContext *C, const float thresh) if (changed) { WM_event_add_notifier(C, NC_OBJECT | ND_BONE_SELECT, ob); + DEG_id_tag_update(&ob->id, ID_RECALC_COPY_ON_WRITE); + DEG_id_tag_update(&ob->id, ID_RECALC_COPY_ON_WRITE); } } MEM_freeN(objects); @@ -1352,6 +1363,7 @@ static void select_similar_layer(bContext *C) if (changed) { WM_event_add_notifier(C, NC_OBJECT | ND_BONE_SELECT, ob); + DEG_id_tag_update(&ob->id, ID_RECALC_COPY_ON_WRITE); } } MEM_freeN(objects); @@ -1393,6 +1405,7 @@ static void select_similar_prefix(bContext *C) if (changed) { WM_event_add_notifier(C, NC_OBJECT | ND_BONE_SELECT, ob); + DEG_id_tag_update(&ob->id, ID_RECALC_COPY_ON_WRITE); } } MEM_freeN(objects); @@ -1434,6 +1447,7 @@ static void select_similar_suffix(bContext *C) if (changed) { WM_event_add_notifier(C, NC_OBJECT | ND_BONE_SELECT, ob); + DEG_id_tag_update(&ob->id, ID_RECALC_COPY_ON_WRITE); } } MEM_freeN(objects); @@ -1461,6 +1475,7 @@ static void select_similar_data_pchan(bContext *C, const size_t bytes_size, cons } WM_event_add_notifier(C, NC_OBJECT | ND_BONE_SELECT, obedit); + DEG_id_tag_update(&obedit->id, ID_RECALC_COPY_ON_WRITE); } static void is_ancestor(EditBone *bone, EditBone *ancestor) @@ -1495,6 +1510,7 @@ static void select_similar_children(bContext *C) } WM_event_add_notifier(C, NC_OBJECT | ND_BONE_SELECT, obedit); + DEG_id_tag_update(&obedit->id, ID_RECALC_COPY_ON_WRITE); } static void select_similar_children_immediate(bContext *C) @@ -1510,6 +1526,7 @@ static void select_similar_children_immediate(bContext *C) } WM_event_add_notifier(C, NC_OBJECT | ND_BONE_SELECT, obedit); + DEG_id_tag_update(&obedit->id, ID_RECALC_COPY_ON_WRITE); } static void select_similar_siblings(bContext *C) @@ -1529,6 +1546,7 @@ static void select_similar_siblings(bContext *C) } WM_event_add_notifier(C, NC_OBJECT | ND_BONE_SELECT, obedit); + DEG_id_tag_update(&obedit->id, ID_RECALC_COPY_ON_WRITE); } static int armature_select_similar_exec(bContext *C, wmOperator *op) @@ -1682,6 +1700,7 @@ static int armature_select_hierarchy_exec(bContext *C, wmOperator *op) ED_armature_edit_sync_selection(arm->edbo); WM_event_add_notifier(C, NC_OBJECT | ND_BONE_SELECT, ob); + DEG_id_tag_update(&ob->id, ID_RECALC_COPY_ON_WRITE); return OPERATOR_FINISHED; } @@ -1769,6 +1788,7 @@ static int armature_select_mirror_exec(bContext *C, wmOperator *op) ED_armature_edit_sync_selection(arm->edbo); WM_event_add_notifier(C, NC_OBJECT | ND_BONE_SELECT, ob); + DEG_id_tag_update(&ob->id, ID_RECALC_COPY_ON_WRITE); } MEM_freeN(objects); @@ -1897,6 +1917,7 @@ static int armature_shortest_path_pick_invoke(bContext *C, wmOperator *op, const ED_outliner_select_sync_from_edit_bone_tag(C); ED_armature_edit_sync_selection(arm->edbo); WM_event_add_notifier(C, NC_OBJECT | ND_BONE_SELECT, obedit); + DEG_id_tag_update(&obedit->id, ID_RECALC_COPY_ON_WRITE); return OPERATOR_FINISHED; } |