Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrecht Van Lommel <brechtvanlommel@gmail.com>2013-12-20 04:38:07 +0400
committerBrecht Van Lommel <brechtvanlommel@gmail.com>2013-12-20 04:40:33 +0400
commitb2fdc591c36cf5125eaa528b7f735c3c4393d390 (patch)
tree8f0525ef93d8336a373810b821155bf04995f0bd /source/blender/editors/armature/armature_edit.c
parent29e3b098253270d4c5cf8337ad068bf4e98d7bdb (diff)
UI: restore confirmation popups for delete operators.
It turned out this was leading to accidental deleting in some cases when the info message was missed by users. Fixes T37801.
Diffstat (limited to 'source/blender/editors/armature/armature_edit.c')
-rw-r--r--source/blender/editors/armature/armature_edit.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/source/blender/editors/armature/armature_edit.c b/source/blender/editors/armature/armature_edit.c
index 9bc94e01085..8600fdc8a53 100644
--- a/source/blender/editors/armature/armature_edit.c
+++ b/source/blender/editors/armature/armature_edit.c
@@ -1137,13 +1137,13 @@ void ARMATURE_OT_split(wmOperatorType *ot)
/* previously delete_armature */
/* only editmode! */
-static int armature_delete_selected_exec(bContext *C, wmOperator *op)
+static int armature_delete_selected_exec(bContext *C, wmOperator *UNUSED(op))
{
bArmature *arm;
EditBone *curBone, *ebone_next;
bConstraint *con;
Object *obedit = CTX_data_edit_object(C); // XXX get from context
- int num_deleted = 0;
+ bool changed = false;
arm = obedit->data;
/* cancel if nothing selected */
@@ -1200,12 +1200,13 @@ static int armature_delete_selected_exec(bContext *C, wmOperator *op)
if (curBone->flag & BONE_SELECTED) {
if (curBone == arm->act_edbone) arm->act_edbone = NULL;
ED_armature_edit_bone_remove(arm, curBone);
- num_deleted++;
+ changed = true;
}
}
}
- BKE_reportf(op->reports, RPT_INFO, "Deleted %d bones", num_deleted);
+ if (!changed)
+ return OPERATOR_CANCELLED;
ED_armature_sync_selection(arm->edbo);
@@ -1222,6 +1223,7 @@ void ARMATURE_OT_delete(wmOperatorType *ot)
ot->description = "Remove selected bones from the armature";
/* api callbacks */
+ ot->invoke = WM_operator_confirm;
ot->exec = armature_delete_selected_exec;
ot->poll = ED_operator_editarmature;