[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