X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/02761f6cd478e3c2c97cf6f93442747f7b029833..ad02525dadb780a4bacb6482ac633e90a10fe25c:/src/html/htmlcell.cpp diff --git a/src/html/htmlcell.cpp b/src/html/htmlcell.cpp index 95d81d6abc..3244eb577f 100644 --- a/src/html/htmlcell.cpp +++ b/src/html/htmlcell.cpp @@ -884,12 +884,12 @@ void wxHtmlContainerCell::Layout(int w) if ( step > 0 ) { // first count the cells which will get extra space - int total = 0; + int total = -1; const wxHtmlCell *c; if ( line != cell ) { - for ( c = line->GetNext(); c != cell; c = c->GetNext() ) + for ( c = line; c != cell; c = c->GetNext() ) { if ( c->IsLinebreakAllowed() ) { @@ -901,11 +901,22 @@ void wxHtmlContainerCell::Layout(int w) // and now extra space to those cells which merit it if ( total ) { - // first cell on line is not moved: - line->SetPos(line->GetPosX() + s_indent, - line->GetPosY() + ypos); + // first visible cell on line is not moved: + while (line !=cell && !line->IsLinebreakAllowed()) + { + line->SetPos(line->GetPosX() + s_indent, + line->GetPosY() + ypos); + line = line->GetNext(); + } + + if (line != cell) + { + line->SetPos(line->GetPosX() + s_indent, + line->GetPosY() + ypos); + + line = line->GetNext(); + } - line = line->GetNext(); for ( int n = 0; line != cell; line = line->GetNext() ) { if ( line->IsLinebreakAllowed() )