From 55865239a236e5567b78bf95001b0de3ab049717 Mon Sep 17 00:00:00 2001 From: Ton Roosendaal Date: Mon, 31 Jan 2011 17:28:03 +0000 Subject: Bugfix #25874 Area split error: if the first split position was exactly aligned with another 'edge' it merged the edges, causing the subdivision layout to go haywire. Only happens in rare occasions, good find this report :) --- source/blender/editors/screen/screen_edit.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'source/blender/editors/screen/screen_edit.c') diff --git a/source/blender/editors/screen/screen_edit.c b/source/blender/editors/screen/screen_edit.c index 376e70f6ea2..9a11dfaa342 100644 --- a/source/blender/editors/screen/screen_edit.c +++ b/source/blender/editors/screen/screen_edit.c @@ -346,7 +346,7 @@ static short testsplitpoint(ScrArea *sa, char dir, float fac) } } -ScrArea *area_split(bScreen *sc, ScrArea *sa, char dir, float fac) +ScrArea *area_split(bScreen *sc, ScrArea *sa, char dir, float fac, int merge) { ScrArea *newa=NULL; ScrVert *sv1, *sv2; @@ -400,7 +400,8 @@ ScrArea *area_split(bScreen *sc, ScrArea *sa, char dir, float fac) } /* remove double vertices en edges */ - removedouble_scrverts(sc); + if(merge) + removedouble_scrverts(sc); removedouble_scredges(sc); removenotused_scredges(sc); @@ -1611,7 +1612,7 @@ ScrArea *ED_screen_full_toggle(bContext *C, wmWindow *win, ScrArea *sa) oldscreen->animtimer= NULL; /* returns the top small area */ - newa= area_split(sc, (ScrArea *)sc->areabase.first, 'h', 0.99f); + newa= area_split(sc, (ScrArea *)sc->areabase.first, 'h', 0.99f, 1); ED_area_newspace(C, newa, SPACE_INFO); /* use random area when we have no active one, e.g. when the -- cgit v1.2.3