diff --git a/docs/changes.txt b/docs/changes.txt index 5e417f3b1b..22439c6db6 100644 --- a/docs/changes.txt +++ b/docs/changes.txt @@ -91,6 +91,10 @@ Major new features in 2.8 release 2.8.10: ------- +All (GUI): + +- Fixed wxHTML's pagebreaks computation in tables (D.J.Stauffer) + All (Unix): - Return false from wxSingleInstanceChecker::IsAnotherRunning() if an error diff --git a/src/html/m_layout.cpp b/src/html/m_layout.cpp index 9073ffc9ec..5cb9daa70b 100644 --- a/src/html/m_layout.cpp +++ b/src/html/m_layout.cpp @@ -108,7 +108,12 @@ bool wxHtmlPageBreakCell::AdjustPagebreak(int* pagebreak, wxArrayInt& known_page // m_PosY is only the vertical offset from the parent. The pagebreak // required here is the total page offset, so m_PosY must be added // to the parent's offset and height. - int total_height = m_PosY + GetParent()->GetPosY() + GetParent()->GetHeight(); + int total_height = m_PosY; + for ( wxHtmlCell *parent = GetParent(); parent; parent = parent->GetParent() ) + { + total_height += parent->GetPosY(); + } + // Search the array of pagebreaks to see whether we've already set // a pagebreak here. The standard bsearch() function is appropriate