[Bf-blender-cvs] [521ae3d458a] blender-v2.83-release: Fix Outliner allowing to enter Pose Mode on linked armature
Julian Eisel
noreply at git.blender.org
Wed Sep 2 15:05:10 CEST 2020
Commit: 521ae3d458adcce73e5f9832fd6e7197721e9df0
Author: Julian Eisel
Date: Thu Aug 27 16:40:56 2020 +0200
Branches: blender-v2.83-release
https://developer.blender.org/rB521ae3d458adcce73e5f9832fd6e7197721e9df0
Fix Outliner allowing to enter Pose Mode on linked armature
If a different object was active, clicking on a linked armature's pose
in the Outliner would enter Pose Mode for it.
This would actually cause a failed assert, but in release builds the
armature would just enter pose mode.
Steps to reproduce were:
* Link in armature object
* Activate a different object
* In the Outliner, un-collapse the armature object
* Activate Pose Mode by clicking on its pose there
===================================================================
M source/blender/editors/space_outliner/outliner_select.c
===================================================================
diff --git a/source/blender/editors/space_outliner/outliner_select.c b/source/blender/editors/space_outliner/outliner_select.c
index fa8422573ab..36bcef22838 100644
--- a/source/blender/editors/space_outliner/outliner_select.c
+++ b/source/blender/editors/space_outliner/outliner_select.c
@@ -46,6 +46,7 @@
#include "BKE_main.h"
#include "BKE_object.h"
#include "BKE_paint.h"
+#include "BKE_report.h"
#include "BKE_scene.h"
#include "BKE_sequencer.h"
#include "BKE_workspace.h"
@@ -193,12 +194,17 @@ static void do_outliner_activate_pose(
}
else {
bool ok = false;
- if (ob->mode & OB_MODE_POSE) {
+
+ if (ID_IS_LINKED(ob)) {
+ BKE_report(CTX_wm_reports(C), RPT_WARNING, "Cannot pose libdata");
+ }
+ else if (ob->mode & OB_MODE_POSE) {
ok = ED_object_posemode_exit_ex(bmain, ob);
}
else {
ok = ED_object_posemode_enter_ex(bmain, ob);
}
+
if (ok) {
ED_object_base_select(base, (ob->mode & OB_MODE_POSE) ? BA_SELECT : BA_DESELECT);
More information about the Bf-blender-cvs
mailing list