[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [53025] trunk/blender/source/blender: Bugfix, irc collection:

Ton Roosendaal ton at blender.org
Sat Dec 15 10:45:40 CET 2012


Revision: 53025
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=53025
Author:   ton
Date:     2012-12-15 09:45:34 +0000 (Sat, 15 Dec 2012)
Log Message:
-----------
Bugfix, irc collection:

With larger header sizes (via DPI setting), splitting an area horizontally (using
left-bottom corner widget, move up) stopped immediate after split, not allowing 
to drag it to a position.

Culprit was code to check minimum header size, and area operator using the same
flags. Now ScrVert has two flags - one for internal use, one for the tools to set.

Modified Paths:
--------------
    trunk/blender/source/blender/editors/screen/area.c
    trunk/blender/source/blender/editors/screen/screen_ops.c
    trunk/blender/source/blender/makesdna/DNA_screen_types.h

Modified: trunk/blender/source/blender/editors/screen/area.c
===================================================================
--- trunk/blender/source/blender/editors/screen/area.c	2012-12-15 07:57:16 UTC (rev 53024)
+++ trunk/blender/source/blender/editors/screen/area.c	2012-12-15 09:45:34 UTC (rev 53025)
@@ -1139,7 +1139,7 @@
 
 static void area_calc_totrct(ScrArea *sa, int sizex, int sizey)
 {
-	short rt = U.pixelsize > 1 ? 1 : 0;
+	short rt = U.pixelsize > 1.0f ? 1 : 0;
 
 	if (sa->v1->vec.x > 0) sa->totrct.xmin = sa->v1->vec.x + 1 + rt;
 	else sa->totrct.xmin = sa->v1->vec.x;

Modified: trunk/blender/source/blender/editors/screen/screen_ops.c
===================================================================
--- trunk/blender/source/blender/editors/screen/screen_ops.c	2012-12-15 07:57:16 UTC (rev 53024)
+++ trunk/blender/source/blender/editors/screen/screen_ops.c	2012-12-15 09:45:34 UTC (rev 53025)
@@ -977,18 +977,18 @@
 			int y1 = sa->v2->vec.y - sa->v1->vec.y - areaminy;
 			
 			/* if top or down edge selected, test height */
-			if (sa->v1->flag && sa->v4->flag)
+			if (sa->v1->editflag && sa->v4->editflag)
 				*bigger = min_ii(*bigger, y1);
-			else if (sa->v2->flag && sa->v3->flag)
+			else if (sa->v2->editflag && sa->v3->editflag)
 				*smaller = min_ii(*smaller, y1);
 		}
 		else {
 			int x1 = sa->v4->vec.x - sa->v1->vec.x - AREAMINX;
 			
 			/* if left or right edge selected, test width */
-			if (sa->v1->flag && sa->v2->flag)
+			if (sa->v1->editflag && sa->v2->editflag)
 				*bigger = min_ii(*bigger, x1);
-			else if (sa->v3->flag && sa->v4->flag)
+			else if (sa->v3->editflag && sa->v4->editflag)
 				*smaller = min_ii(*smaller, x1);
 		}
 	}
@@ -1038,7 +1038,7 @@
 	delta = CLAMPIS(delta, -smaller, bigger);
 	
 	for (v1 = sc->vertbase.first; v1; v1 = v1->next) {
-		if (v1->flag) {
+		if (v1->editflag) {
 			/* that way a nice AREAGRID  */
 			if ((dir == 'v') && v1->vec.x > 0 && v1->vec.x < WM_window_pixels_x(win) - 1) {
 				v1->vec.x = origval + delta;
@@ -1058,7 +1058,7 @@
 	}
 
 	for (sa = sc->areabase.first; sa; sa = sa->next) {
-		if (sa->v1->flag || sa->v2->flag || sa->v3->flag || sa->v4->flag)
+		if (sa->v1->editflag || sa->v2->editflag || sa->v3->editflag || sa->v4->editflag)
 			ED_area_tag_redraw(sa);
 	}
 
@@ -1336,10 +1336,10 @@
 		
 		/* select newly created edge, prepare for moving edge */
 		for (sv = sc->vertbase.first; sv; sv = sv->next)
-			sv->flag = 0;
+			sv->editflag = 0;
 		
-		sd->nedge->v1->flag = 1;
-		sd->nedge->v2->flag = 1;
+		sd->nedge->v1->editflag = 1;
+		sd->nedge->v2->editflag = 1;
 		
 		if (dir == 'h') sd->origval = sd->nedge->v1->vec.y;
 		else sd->origval = sd->nedge->v1->vec.x;

Modified: trunk/blender/source/blender/makesdna/DNA_screen_types.h
===================================================================
--- trunk/blender/source/blender/makesdna/DNA_screen_types.h	2012-12-15 07:57:16 UTC (rev 53024)
+++ trunk/blender/source/blender/makesdna/DNA_screen_types.h	2012-12-15 09:45:34 UTC (rev 53025)
@@ -82,7 +82,8 @@
 typedef struct ScrVert {
 	struct ScrVert *next, *prev, *newv;
 	vec2s vec;
-	int flag;
+	/* first one used internally, second one for tools */
+	short flag, editflag;
 } ScrVert;
 
 typedef struct ScrEdge {




More information about the Bf-blender-cvs mailing list