From 55ad60c94cf61eca9692530f5df414cfe226381b Mon Sep 17 00:00:00 2001 From: =?utf8?q?V=C3=A1clav=20Slav=C3=ADk?= Date: Thu, 30 Oct 2008 07:24:36 +0000 Subject: [PATCH] wxHTML: don't include extra whitespace in table cells git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56589 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- src/html/m_tables.cpp | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/src/html/m_tables.cpp b/src/html/m_tables.cpp index c5d63e6020..8540af13f2 100644 --- a/src/html/m_tables.cpp +++ b/src/html/m_tables.cpp @@ -666,10 +666,12 @@ TAG_HANDLER_BEGIN(TABLE, "TABLE,TR,TD,TH") TAG_HANDLER_VARS wxHtmlTableCell* m_Table; wxString m_tAlign, m_rAlign; + wxHtmlContainerCell *m_enclosingContainer; TAG_HANDLER_CONSTR(TABLE) { m_Table = NULL; + m_enclosingContainer = NULL; m_tAlign = m_rAlign = wxEmptyString; } @@ -682,9 +684,8 @@ TAG_HANDLER_BEGIN(TABLE, "TABLE,TR,TD,TH") if (tag.GetName() == wxT("TABLE")) { wxHtmlTableCell *oldt = m_Table; - wxHtmlContainerCell *oldcont; - oldcont = c = m_WParser->OpenContainer(); + m_enclosingContainer = c = m_WParser->OpenContainer(); m_Table = new wxHtmlTableCell(c, tag, m_WParser->GetPixelScale()); @@ -718,11 +719,12 @@ TAG_HANDLER_BEGIN(TABLE, "TABLE,TR,TD,TH") ParseInner(tag); m_WParser->SetAlign(oldAlign); - m_WParser->SetContainer(oldcont); + m_WParser->SetContainer(m_enclosingContainer); m_WParser->CloseContainer(); m_Table = oldt; - return true; + + return true; // ParseInner() called } @@ -764,8 +766,19 @@ TAG_HANDLER_BEGIN(TABLE, "TABLE,TR,TD,TH") m_WParser->SetAlign(wxHTML_ALIGN_CENTER); m_WParser->OpenContainer(); + + ParseInner(tag); + + // set the current container back to the enclosing one so that + // text outside of and isn't included in any cell + // (this happens often enough in practice because it's common + // to use whitespace between and the next ): + m_WParser->SetContainer(m_enclosingContainer); + + return true; // ParseInner() called } } + return false; } -- 2.45.2