diff options
author | Jacques Lucke <jacques@blender.org> | 2020-11-24 19:32:40 +0300 |
---|---|---|
committer | Jacques Lucke <jacques@blender.org> | 2020-11-24 19:32:56 +0300 |
commit | e922dd7d8a307c54d49bc01649a12610b022192b (patch) | |
tree | 21ab3edb04efa7eb95aec6f8df0868acd820ea1c /source/blender/draw/engines/overlay/overlay_armature.c | |
parent | 256a9d983d4862560071393f7ddf44bcbd34ad74 (diff) |
Viewport: cannot select object by clicking on its instances
Selecting an object by clicking on its instances only worked,
when the object itself is visible. However, it is possible to hide
the object and still keep the instances visible.
The solution is to give every object the correct `select_id` in the
depsgraph object iterator right before rendering.
Reviewers: fclem, brecht
Differential Revision: https://developer.blender.org/D9640
Diffstat (limited to 'source/blender/draw/engines/overlay/overlay_armature.c')
-rw-r--r-- | source/blender/draw/engines/overlay/overlay_armature.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/source/blender/draw/engines/overlay/overlay_armature.c b/source/blender/draw/engines/overlay/overlay_armature.c index cbd2589f20f..1f95eec4486 100644 --- a/source/blender/draw/engines/overlay/overlay_armature.c +++ b/source/blender/draw/engines/overlay/overlay_armature.c @@ -1910,7 +1910,7 @@ static void draw_armature_edit(ArmatureDrawContext *ctx) edbo_compute_bbone_child(arm); - for (eBone = arm->edbo->first, index = ob_orig->runtime.select_id; eBone; + for (eBone = arm->edbo->first, index = ob->runtime.select_id; eBone; eBone = eBone->next, index += 0x10000) { if (eBone->layer & arm->layer) { if ((eBone->flag & BONE_HIDDEN_A) == 0) { @@ -2005,8 +2005,7 @@ static void draw_armature_pose(ArmatureDrawContext *ctx) DRW_state_is_select(); if (is_pose_select) { - const Object *ob_orig = DEG_get_original_object(ob); - index = ob_orig->runtime.select_id; + index = ob->runtime.select_id; } } |