[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [11989] trunk/blender/source/blender/src/ drawipo.c: Bugfix #7294:
Joshua Leung
aligorith at gmail.com
Mon Sep 10 09:24:26 CEST 2007
Revision: 11989
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=11989
Author: aligorith
Date: 2007-09-10 09:24:26 +0200 (Mon, 10 Sep 2007)
Log Message:
-----------
Bugfix #7294:
When resizing an Outliner window, the contents would eventually get 'pushed out of view' when shrinking the view.
I've added a bit of a 'hack', which will ensure that this doesn't happen, by forcing the view to look at the left-side of the outliner tree, when the width of the outliner window decreses due to resizing.
Modified Paths:
--------------
trunk/blender/source/blender/src/drawipo.c
Modified: trunk/blender/source/blender/src/drawipo.c
===================================================================
--- trunk/blender/source/blender/src/drawipo.c 2007-09-10 06:09:48 UTC (rev 11988)
+++ trunk/blender/source/blender/src/drawipo.c 2007-09-10 07:24:26 UTC (rev 11989)
@@ -614,17 +614,23 @@
else if( dy > 1.0) do_x= 0; else do_x= 1;
}
- v2d->oldwinx= winx;
- v2d->oldwiny= winy;
-
if( do_x ) {
-
- /* portrait window: correct for x */
- dx= cur->ymax-cur->ymin;
- temp= (cur->xmax+cur->xmin);
-
- cur->xmin= temp/2.0 - 0.5*dx/dy;
- cur->xmax= temp/2.0 + 0.5*dx/dy;
+ if (v2d->keeptot == 2 && winx < v2d->oldwinx) {
+ /* This is a special hack for the outliner, to ensure that the
+ * outliner contents will not eventually get pushed out of view
+ * when shrinking the view.
+ */
+ cur->xmax -= cur->xmin;
+ cur->xmin= 0.0f;
+ }
+ else {
+ /* portrait window: correct for x */
+ dx= cur->ymax-cur->ymin;
+ temp= (cur->xmax+cur->xmin);
+
+ cur->xmin= temp/2.0 - 0.5*dx/dy;
+ cur->xmax= temp/2.0 + 0.5*dx/dy;
+ }
}
else {
dx= cur->xmax-cur->xmin;
@@ -633,6 +639,9 @@
cur->ymin= temp/2.0 - 0.5*dy*dx;
cur->ymax= temp/2.0 + 0.5*dy*dx;
}
+
+ v2d->oldwinx= winx;
+ v2d->oldwiny= winy;
}
if(v2d->keeptot) {
@@ -664,6 +673,7 @@
cur->xmax+= dx;
}
else if((v2d->keeptot!=2) && (cur->xmax > tot->xmax)) {
+ /* keeptot==2 is a special case for the outliner. see space.c, init_v2d_oops for details */
dx= cur->xmax-tot->xmax;
cur->xmin-= dx;
cur->xmax-= dx;
More information about the Bf-blender-cvs
mailing list