- line->SetPos(line->GetPosX() + s_indent +
- (counter++ * step / xcnt),
- ypos + line->GetPosY());
- line = line->GetNext();
+ // first count the cells which will get extra space
+ int total = 0;
+ for ( wxHtmlCell *c = line; c != cell; c = c->GetNext() )
+ {
+ if ( c->IsLinebreakAllowed() )
+ total++;
+ }
+
+ // and now extra space to those cells which merit it
+ if ( total )
+ {
+ for ( int n = 0; line != cell; line = line->GetNext() )
+ {
+ line->SetPos(line->GetPosX() + s_indent +
+ ((n * step) / total),
+ line->GetPosY() + ypos);
+
+ if ( line->IsLinebreakAllowed() )
+ {
+ // offset the next cell relative to this one
+ // thus increasing our size
+ n++;
+ }
+ }
+ }
+ }
+ else // no extra space to distribute
+ {
+ // just set the indent properly
+ while (line != cell)
+ {
+ line->SetPos(line->GetPosX() + s_indent,
+ line->GetPosY() + ypos);
+ line = line->GetNext();
+ }