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
This commit is contained in:
Václav Slavík 2008-10-30 07:24:36 +00:00
parent 22a9029e23
commit 55ad60c94c

View File

@ -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 <th> and <td> isn't included in any cell
// (this happens often enough in practice because it's common
// to use whitespace between </td> and the next <td>):
m_WParser->SetContainer(m_enclosingContainer);
return true; // ParseInner() called
}
}
return false;
}