[Bf-blender-cvs] [c59b21f] master: Fix own mistake from c05363e8895

Julian Eisel noreply at git.blender.org
Thu Jul 28 02:27:55 CEST 2016


Commit: c59b21feec3056d208eb068346eaedd52a40bec7
Author: Julian Eisel
Date:   Thu Jul 28 02:23:32 2016 +0200
Branches: master
https://developer.blender.org/rBc59b21feec3056d208eb068346eaedd52a40bec7

Fix own mistake from c05363e8895

Didn't know slink->regionbase is removed when area is active. Don't see why this is done, but it's confusing :S

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

M	source/blender/editors/space_view3d/space_view3d.c

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

diff --git a/source/blender/editors/space_view3d/space_view3d.c b/source/blender/editors/space_view3d/space_view3d.c
index a588ba7..075b1fa 100644
--- a/source/blender/editors/space_view3d/space_view3d.c
+++ b/source/blender/editors/space_view3d/space_view3d.c
@@ -1400,7 +1400,7 @@ static int view3d_context(const bContext *C, const char *member, bContextDataRes
 	return -1; /* found but not available */
 }
 
-static void view3d_id_remap(ScrArea *UNUSED(sa), SpaceLink *slink, ID *old_id, ID *new_id)
+static void view3d_id_remap(ScrArea *sa, SpaceLink *slink, ID *old_id, ID *new_id)
 {
 	View3D *v3d;
 	ARegion *ar;
@@ -1414,8 +1414,9 @@ static void view3d_id_remap(ScrArea *UNUSED(sa), SpaceLink *slink, ID *old_id, I
 		if ((ID *)v3d->camera == old_id) {
 			v3d->camera = (Object *)new_id;
 			if (!new_id) {
-				/* use v3d->regionbase as sa->regionbase is from active area, 3D view might be inactive though */
-				for (ar = v3d->regionbase.first; ar; ar = ar->next) {
+				/* 3D view might be inactive, in that case needs to use slink->regionbase */
+				ListBase *regionbase = (slink == sa->spacedata.first) ? &sa->regionbase : &slink->regionbase;
+				for (ar = regionbase->first; ar; ar = ar->next) {
 					if (ar->regiontype == RGN_TYPE_WINDOW) {
 						RegionView3D *rv3d = is_local ? ((RegionView3D *)ar->regiondata)->localvd : ar->regiondata;
 						if (rv3d && (rv3d->persp == RV3D_CAMOB)) {




More information about the Bf-blender-cvs mailing list