[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [14222] trunk/blender/source/blender/src/ view.c: [#8717] ZOOM with CTRL+mouse drag (consumes all cpu)

Campbell Barton ideasman42 at gmail.com
Sun Mar 23 19:53:45 CET 2008


Revision: 14222
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=14222
Author:   campbellbarton
Date:     2008-03-23 19:53:45 +0100 (Sun, 23 Mar 2008)

Log Message:
-----------
[#8717] ZOOM with CTRL+mouse drag (consumes all cpu)
patch from Andr?\195?\169 Pinto to stop zoom from redrawing when the mouse didnt move.

Modified Paths:
--------------
    trunk/blender/source/blender/src/view.c

Modified: trunk/blender/source/blender/src/view.c
===================================================================
--- trunk/blender/source/blender/src/view.c	2008-03-23 18:32:20 UTC (rev 14221)
+++ trunk/blender/source/blender/src/view.c	2008-03-23 18:53:45 UTC (rev 14222)
@@ -727,7 +727,7 @@
 	float reverse, oldquat[4], q1[4], si, phi, dist0;
 	float ofs[3], obofs[3]= {0.0f, 0.0f, 0.0f};
 	int firsttime=1;
-	short mvalball[2], mval[2], mvalo[2], mval_area[2];
+	short mvalball[2], mval[2], mvalo[2], mval_area[2], mvali[2];
 	short use_sel = 0;
 	short preview3d_event= 1;
 	
@@ -764,9 +764,9 @@
 	QUATCOPY(oldquat, G.vd->viewquat);
 	
 	getmouseco_areawin(mval_area);	/* for zoom to mouse loc */
-	getmouseco_sc(mvalo);		/* work with screen coordinates because of trackball function */
-	mvalball[0]= mvalo[0];			/* needed for turntable to work */
-	mvalball[1]= mvalo[1];
+	getmouseco_sc(mvali);		/* work with screen coordinates because of trackball function */
+	mvalball[0]= mvalo[0] = mvali[0];			/* needed for turntable to work */
+	mvalball[1]= mvalo[1] = mvali[1];
 	dist0= G.vd->dist;
 	
 	calctrackballvec(&curarea->winrct, mvalo, firstvec);
@@ -937,6 +937,11 @@
 			}
 			else if(mode==2) {
 				float zfac=1.0;
+
+				/* use initial value (do not use mvalo (that is used to detect mouse moviments)) */
+				mvalo[0] = mvali[0];
+				mvalo[1] = mvali[1];
+
 				if(U.viewzoom==USER_ZOOM_CONT) {
 					// oldstyle zoom
 					zfac = 1.0+(float)(mvalo[0]-mval[0]+mvalo[1]-mval[1])/1000.0;
@@ -967,9 +972,6 @@
 				if(G.vd->dist<0.001*G.vd->grid) G.vd->dist= 0.001*G.vd->grid;
 				if(G.vd->dist>10.0*G.vd->far) G.vd->dist=10.0*G.vd->far;
 				
-				mval[1]= mvalo[1]; /* preserve first value */
-				mval[0]= mvalo[0];
-				
 				if(G.vd->persp==0 || G.vd->persp==2) preview3d_event= 0;
 			}
 			





More information about the Bf-blender-cvs mailing list