wxHTML: don't include extra whitespace in table cells
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_8_BRANCH@56590 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -102,7 +102,8 @@ All (GUI):
|
|||||||
Polish Pro input.
|
Polish Pro input.
|
||||||
- Fixed wxHtmlWindow::SelectionToText() to correctly insert newlines after
|
- Fixed wxHtmlWindow::SelectionToText() to correctly insert newlines after
|
||||||
single-cell paragraphs.
|
single-cell paragraphs.
|
||||||
- Fixed wxHTML's line breaks handling in <pre> blocks broken in 2.8.8 (#10120)
|
- Fixed wxHTML's line breaks handling in <pre> blocks broken in 2.8.8 (#10120).
|
||||||
|
- wxHTML: don't include extra whitespace in table cells.
|
||||||
|
|
||||||
All (Unix):
|
All (Unix):
|
||||||
|
|
||||||
|
@@ -665,10 +665,12 @@ TAG_HANDLER_BEGIN(TABLE, "TABLE,TR,TD,TH")
|
|||||||
TAG_HANDLER_VARS
|
TAG_HANDLER_VARS
|
||||||
wxHtmlTableCell* m_Table;
|
wxHtmlTableCell* m_Table;
|
||||||
wxString m_tAlign, m_rAlign;
|
wxString m_tAlign, m_rAlign;
|
||||||
|
wxHtmlContainerCell *m_enclosingContainer;
|
||||||
|
|
||||||
TAG_HANDLER_CONSTR(TABLE)
|
TAG_HANDLER_CONSTR(TABLE)
|
||||||
{
|
{
|
||||||
m_Table = NULL;
|
m_Table = NULL;
|
||||||
|
m_enclosingContainer = NULL;
|
||||||
m_tAlign = m_rAlign = wxEmptyString;
|
m_tAlign = m_rAlign = wxEmptyString;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -681,9 +683,8 @@ TAG_HANDLER_BEGIN(TABLE, "TABLE,TR,TD,TH")
|
|||||||
if (tag.GetName() == wxT("TABLE"))
|
if (tag.GetName() == wxT("TABLE"))
|
||||||
{
|
{
|
||||||
wxHtmlTableCell *oldt = m_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());
|
m_Table = new wxHtmlTableCell(c, tag, m_WParser->GetPixelScale());
|
||||||
|
|
||||||
@@ -717,11 +718,12 @@ TAG_HANDLER_BEGIN(TABLE, "TABLE,TR,TD,TH")
|
|||||||
ParseInner(tag);
|
ParseInner(tag);
|
||||||
|
|
||||||
m_WParser->SetAlign(oldAlign);
|
m_WParser->SetAlign(oldAlign);
|
||||||
m_WParser->SetContainer(oldcont);
|
m_WParser->SetContainer(m_enclosingContainer);
|
||||||
m_WParser->CloseContainer();
|
m_WParser->CloseContainer();
|
||||||
|
|
||||||
m_Table = oldt;
|
m_Table = oldt;
|
||||||
return true;
|
|
||||||
|
return true; // ParseInner() called
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -763,8 +765,19 @@ TAG_HANDLER_BEGIN(TABLE, "TABLE,TR,TD,TH")
|
|||||||
m_WParser->SetAlign(wxHTML_ALIGN_CENTER);
|
m_WParser->SetAlign(wxHTML_ALIGN_CENTER);
|
||||||
|
|
||||||
m_WParser->OpenContainer();
|
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;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user