Mercurial > dwindows
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)++; |