Page MenuHome

fast_mesa_border.patch

fast_mesa_border.patch

Index: ./source/blender/src/editscreen.c
===================================================================
RCS file: /cvsroot/bf-blender/blender/source/blender/src/editscreen.c,v
retrieving revision 1.120
diff -u -u -r1.120 editscreen.c
--- ./source/blender/src/editscreen.c 28 Nov 2005 22:49:23 -0000 1.120
+++ ./source/blender/src/editscreen.c 20 Jan 2006 05:32:27 -0000
@@ -2949,7 +2949,7 @@
}
}
- if (first || mval[0]!=mvalo[0] || mval[1]!=mvalo[1]) {
+ if (first || ((mval[0]!=mvalo[0] && dir=='v') || (mval[1]!=mvalo[1] && dir=='h'))) {
if (!first) {
scrarea_draw_splitpoint(sa, dir, fac);
}
@@ -3225,11 +3225,13 @@
{
ScrVert *v1;
ScrArea *sa;
- short mvalo[2];
+ short mvalo[2], mvald[2], mval[2]; /* mouse values old, absolute difference (between last test) and current */
short edge_start, edge_end, edge_position;
short bigger, smaller, headery, areaminy;
- int delta, doit;
+ int delta, doit, x1, y1;
char dir;
+ short val; /* Event variables */
+ unsigned short event;
if(edge->border) return;
@@ -3268,7 +3270,6 @@
}
if(sa->v1->flag && sa->v4->flag) {
- int y1;
if(sa->v2->vec.y==G.curscreen->sizey-1) /* top edge */
y1= sa->v2->vec.y - sa->v1->vec.y-headery-EDGEWIDTH;
else
@@ -3276,7 +3277,6 @@
bigger= MIN2(bigger, y1);
}
else if(sa->v2->flag && sa->v3->flag) {
- int y1;
if(sa->v1->vec.y==0) /* bottom edge */
y1= sa->v2->vec.y - sa->v1->vec.y-headery-EDGEWIDTH;
else
@@ -3286,11 +3286,11 @@
}
else { /* if left or right edge selected, test width */
if(sa->v1->flag && sa->v2->flag) {
- int x1= sa->v4->vec.x - sa->v1->vec.x-AREAMINX;
+ x1= sa->v4->vec.x - sa->v1->vec.x-AREAMINX;
bigger= MIN2(bigger, x1);
}
else if(sa->v3->flag && sa->v4->flag) {
- int x1= sa->v4->vec.x - sa->v1->vec.x-AREAMINX;
+ x1= sa->v4->vec.x - sa->v1->vec.x-AREAMINX;
smaller= MIN2(smaller, x1);
}
}
@@ -3303,24 +3303,25 @@
glDrawBuffer(GL_FRONT);
doit= delta= 0;
- getmouseco_sc(mvalo);
+ getmouseco_sc(mvald); /* Store the original mouse location, dont change this */
draw_front_xor_dirdist_line(dir, edge_position+delta, edge_start, edge_end);
while (!doit) {
- short val;
- unsigned short event= extern_qread(&val);
+ event= extern_qread(&val);
- if (event==MOUSEY) {
- short mval[2];
-
+ if (event==MOUSEY ) {
getmouseco_sc(mval);
-
- draw_front_xor_dirdist_line(dir, edge_position+delta, edge_start, edge_end);
-
- delta= (dir=='h')?(mval[1]-mvalo[1]):(mval[0]-mvalo[0]);
- delta= CLAMPIS(delta, -smaller, bigger);
- draw_front_xor_dirdist_line(dir, edge_position+delta, edge_start, edge_end);
- glFlush();
+ if ((mval[0]!=mvalo[0] && dir=='v') || (mval[1]!=mvalo[1] && dir=='h')) { /* only ever redraw if the mouse has moved on the border axis */
+ draw_front_xor_dirdist_line(dir, edge_position+delta, edge_start, edge_end);
+
+ delta= (dir=='h')?(mval[1]-mvald[1]):(mval[0]-mvald[0]);
+ delta= CLAMPIS(delta, -smaller, bigger);
+ draw_front_xor_dirdist_line(dir, edge_position+delta, edge_start, edge_end);
+ glFlush();
+
+ mvalo[0]= mval[0]; /*store the old mouse values, se we can tell if the mouse is moving */
+ mvalo[1]= mval[1];
+ }
}
else if (event==LEFTMOUSE) {
doit= 1;

File Metadata

Mime Type
text/x-diff
Storage Engine
local-disk
Storage Format
Raw Data
Storage Handle
06/52/37135c9081b292235b96ae310b1c

Event Timeline