[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