comparison win/dw.c @ 425:4fe2df53ec9f

Division by zero fix in the layout engine.
author bsmith@81767d24-ef19-dc11-ae90-00e081727c95
date Sun, 18 May 2003 08:42:10 +0000
parents 49654a5adcf2
children f977c80a1dfa
comparison
equal deleted inserted replaced
424:5cc81d3c2bca 425:4fe2df53ec9f
1088 1088
1089 if(tmp) 1089 if(tmp)
1090 { 1090 {
1091 if(*depth > 0) 1091 if(*depth > 0)
1092 { 1092 {
1093 float calcval;
1094
1093 if(thisbox->type == DW_VERT) 1095 if(thisbox->type == DW_VERT)
1094 { 1096 {
1095 tmp->xratio = ((float)((thisbox->items[z].width * thisbox->xratio)-((thisbox->items[z].pad*2)+(thisbox->pad*2))))/((float)(tmp->minwidth-((thisbox->items[z].pad*2)+(thisbox->pad*2)))); 1097 calcval = (float)(tmp->minwidth-((thisbox->items[z].pad*2)+(thisbox->pad*2)));
1098 if(calcval == 0.0)
1099 tmp->xratio = thisbox->xratio;
1100 else
1101 tmp->xratio = ((float)((thisbox->items[z].width * thisbox->xratio)-((thisbox->items[z].pad*2)+(thisbox->pad*2))))/calcval;
1096 tmp->width = thisbox->items[z].width; 1102 tmp->width = thisbox->items[z].width;
1097 } 1103 }
1098 if(thisbox->type == DW_HORZ) 1104 if(thisbox->type == DW_HORZ)
1099 { 1105 {
1100 tmp->yratio = ((float)((thisbox->items[z].height * thisbox->yratio)-((thisbox->items[z].pad*2)+(thisbox->pad*2))))/((float)(tmp->minheight-((thisbox->items[z].pad*2)+(thisbox->pad*2)))); 1106 calcval = (float)(tmp->minheight-((thisbox->items[z].pad*2)+(thisbox->pad*2)));
1107 if(calcval == 0.0)
1108 tmp->yratio = thisbox->yratio;
1109 else
1110 tmp->yratio = ((float)((thisbox->items[z].height * thisbox->yratio)-((thisbox->items[z].pad*2)+(thisbox->pad*2))))/calcval;
1101 tmp->height = thisbox->items[z].height; 1111 tmp->height = thisbox->items[z].height;
1102 } 1112 }
1103 } 1113 }
1104 1114
1105 (*depth)++; 1115 (*depth)++;