[Bf-blender-cvs] [3a131f8] soc-2016-multiview: move duplicate code to region_splitview_init

Tianwei Shen noreply at git.blender.org
Thu Aug 4 11:19:45 CEST 2016


Commit: 3a131f879b70241d16205a6cf29ad1f5062cb51e
Author: Tianwei Shen
Date:   Thu Aug 4 17:19:11 2016 +0800
Branches: soc-2016-multiview
https://developer.blender.org/rB3a131f879b70241d16205a6cf29ad1f5062cb51e

move duplicate code to region_splitview_init

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

M	source/blender/editors/space_clip/clip_editor.c

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

diff --git a/source/blender/editors/space_clip/clip_editor.c b/source/blender/editors/space_clip/clip_editor.c
index f5b65d4..a63c577 100644
--- a/source/blender/editors/space_clip/clip_editor.c
+++ b/source/blender/editors/space_clip/clip_editor.c
@@ -679,9 +679,11 @@ void ED_space_clip_set_secondary_clip(bContext *C, bScreen *screen, SpaceClip *s
 
 /* ******** split view when changing to correspondence mode ******** */
 
-static void region_splitview_init(ScrArea *sa, ARegion *ar, SpaceClip *sc)
+static void region_splitview_init(ScrArea *sa, ARegion *ar, SpaceClip *sc, eRegionSpaceClip_Flag flag)
 {
+	/* set the region type so that clip_main_region_draw is aware of this */
 	RegionSpaceClip *rsc = ar->regiondata;
+	rsc->flag = flag;
 
 	/* XXX: Hack to make proper alignment decisions made in
 	 *      region_rect_recursive().
@@ -730,7 +732,7 @@ void ED_clip_update_correspondence_mode(bContext *C, SpaceClip *sc)
 	if (ar->regiontype != RGN_TYPE_WINDOW) {
 		return;
 	}
-	else if (ar->alignment == RGN_ALIGN_VSPLIT) {
+	else if (sc->mode != SC_MODE_CORRESPONDENCE && ar->alignment == RGN_ALIGN_VSPLIT) {
 		///* Exit split-view */
 		ScrArea *sa = CTX_wm_area(C);
 		ARegion *arn;
@@ -758,20 +760,15 @@ void ED_clip_update_correspondence_mode(bContext *C, SpaceClip *sc)
 		ScrArea *sa = CTX_wm_area(C);
 
 		ar->alignment = RGN_ALIGN_VSPLIT;
-		RegionSpaceClip *rsc = ar->regiondata;
-		rsc->flag = RSC_MAIN_CLIP;
 
-		/* set the region type to RSC_SECONDARY_CLIP so that
-		 * clip_main_region_draw is aware of this */
+		/* copy the current ar */
 		ARegion *newar = BKE_area_region_copy(sa->type, ar);
-		RegionSpaceClip *new_rsc = newar->regiondata;
-		new_rsc->flag = RSC_SECONDARY_CLIP;
 		BLI_addtail(&sa->regionbase, newar);
 
 		/* update split view */
 		if (sa->spacetype == SPACE_CLIP) {
-			region_splitview_init(sa, ar, sc);
-			region_splitview_init(sa, (ar = ar->next), sc);
+			region_splitview_init(sa, ar, sc, RSC_MAIN_CLIP);
+			region_splitview_init(sa, (ar = ar->next), sc, RSC_SECONDARY_CLIP);
 		}
 		ED_area_tag_redraw(sa);
 		WM_event_add_notifier(C, NC_SCREEN | NA_EDITED, NULL);




More information about the Bf-blender-cvs mailing list