[Bf-blender-cvs] [807b6c48487] master: Revert "Fix T66949: Can't select bones from multiple objects in wpaint mode"

Campbell Barton noreply at git.blender.org
Thu Jul 18 07:48:12 CEST 2019


Commit: 807b6c4848723949d929fbcb6620977680e6f8d0
Author: Campbell Barton
Date:   Thu Jul 18 12:22:32 2019 +1000
Branches: master
https://developer.blender.org/rB807b6c4848723949d929fbcb6620977680e6f8d0

Revert "Fix T66949: Can't select bones from multiple objects in wpaint mode"

This reverts commit 9e9fbb39d7f9e0a63c71fbc96237ace62fae0db6.

Adding back object+pose bone selection support removes the need for this fix.

===================================================================

M	source/blender/blenkernel/BKE_modifier.h
M	source/blender/blenkernel/intern/modifier.c
M	source/blender/editors/space_view3d/view3d_select.c

===================================================================

diff --git a/source/blender/blenkernel/BKE_modifier.h b/source/blender/blenkernel/BKE_modifier.h
index 8958f7c73aa..4aab2a346e7 100644
--- a/source/blender/blenkernel/BKE_modifier.h
+++ b/source/blender/blenkernel/BKE_modifier.h
@@ -382,7 +382,6 @@ struct Object *modifiers_isDeformedByMeshDeform(struct Object *ob);
 struct Object *modifiers_isDeformedByLattice(struct Object *ob);
 struct Object *modifiers_isDeformedByCurve(struct Object *ob);
 bool modifiers_usesArmature(struct Object *ob, struct bArmature *arm);
-bool modifiers_usesArmatureObject(struct Object *ob, struct Object *ob_armature);
 bool modifiers_usesSubsurfFacedots(struct Scene *scene, struct Object *ob);
 bool modifiers_isCorrectableDeformed(struct Scene *scene, struct Object *ob);
 void modifier_freeTemporaryData(struct ModifierData *md);
diff --git a/source/blender/blenkernel/intern/modifier.c b/source/blender/blenkernel/intern/modifier.c
index 144fedb4c8a..c23fe30d311 100644
--- a/source/blender/blenkernel/intern/modifier.c
+++ b/source/blender/blenkernel/intern/modifier.c
@@ -778,23 +778,6 @@ bool modifiers_usesArmature(Object *ob, bArmature *arm)
   return false;
 }
 
-bool modifiers_usesArmatureObject(Object *ob, Object *ob_armature)
-{
-  VirtualModifierData virtualModifierData;
-  ModifierData *md = modifiers_getVirtualModifierList(ob, &virtualModifierData);
-
-  for (; md; md = md->next) {
-    if (md->type == eModifierType_Armature) {
-      ArmatureModifierData *amd = (ArmatureModifierData *)md;
-      if (amd->object && amd->object == ob_armature) {
-        return true;
-      }
-    }
-  }
-
-  return false;
-}
-
 bool modifiers_usesSubsurfFacedots(struct Scene *scene, Object *ob)
 {
   /* Search (backward) in the modifier stack to find if we have a subsurf modifier (enabled) before
diff --git a/source/blender/editors/space_view3d/view3d_select.c b/source/blender/editors/space_view3d/view3d_select.c
index 1d8d0f61150..e39bd3f945f 100644
--- a/source/blender/editors/space_view3d/view3d_select.c
+++ b/source/blender/editors/space_view3d/view3d_select.c
@@ -72,7 +72,6 @@
 #include "BKE_scene.h"
 #include "BKE_tracking.h"
 #include "BKE_workspace.h"
-#include "BKE_modifier.h"
 
 #include "DEG_depsgraph.h"
 
@@ -2150,12 +2149,6 @@ static bool ed_object_select_pick(bContext *C,
   /* In pose mode we don't want to mess with object selection. */
   const bool is_pose_mode = (vc.obact && vc.obact->mode & OB_MODE_POSE);
 
-  /* Support changing pose objects when the a mesh uses multiple armatures. */
-  Object *old_obpose = NULL;
-  if (vc.obact && vc.obact->mode & OB_MODE_WEIGHT_PAINT) {
-    old_obpose = BKE_object_pose_armature_get(vc.obact);
-  }
-
   /* always start list from basact in wire mode */
   startbase = FIRSTBASE(view_layer);
   if (oldbasact && oldbasact->next) {
@@ -2382,17 +2375,6 @@ static bool ed_object_select_pick(bContext *C,
       object_deselect_all_except(view_layer, basact);
       ED_object_base_select(basact, BA_SELECT);
     }
-    else if (old_obpose && modifiers_usesArmatureObject(oldbasact->object, basact->object)) {
-      /* The user is in weight-paint mode with an armature selected,
-       * in this case the user is selecting a new armature which is
-       * also used by the mesh. In this case use selection to switch
-       * the pose object, keeping the weight paint object active. */
-      Base *old_basepose = BKE_view_layer_base_find(view_layer, old_obpose);
-      if (old_basepose != NULL) {
-        ED_object_base_select(old_basepose, BA_DESELECT);
-      }
-      ED_object_base_select(basact, BA_SELECT);
-    }
     /* also prevent making it active on mouse selection */
     else if (BASE_SELECTABLE(v3d, basact)) {
       if (extend) {



More information about the Bf-blender-cvs mailing list