From 3a23d484e30d867d0781eb96ddb26e6ba82d43f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=A1clav=20Slav=C3=ADk?= Date: Thu, 30 Oct 2008 07:25:18 +0000 Subject: [PATCH] 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 --- docs/changes.txt | 3 ++- src/html/m_tables.cpp | 21 +++++++++++++++++---- 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/docs/changes.txt b/docs/changes.txt index bfda87fa83..ea6a5c0e14 100644 --- a/docs/changes.txt +++ b/docs/changes.txt @@ -102,7 +102,8 @@ All (GUI): Polish Pro input. - Fixed wxHtmlWindow::SelectionToText() to correctly insert newlines after single-cell paragraphs. -- Fixed wxHTML's line breaks handling in
 blocks broken in 2.8.8 (#10120)
+- Fixed wxHTML's line breaks handling in 
 blocks broken in 2.8.8 (#10120).
+- wxHTML: don't include extra whitespace in table cells.
 
 All (Unix):
 
diff --git a/src/html/m_tables.cpp b/src/html/m_tables.cpp
index 3b896c0851..4f957aa698 100644
--- a/src/html/m_tables.cpp
+++ b/src/html/m_tables.cpp
@@ -665,10 +665,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;
     }
 
@@ -681,9 +683,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());
 
@@ -717,11 +718,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
         }
 
 
@@ -763,8 +765,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;
     }