diff options
Diffstat (limited to 'fpdfsdk')
-rw-r--r-- | fpdfsdk/pwl/cpwl_edit.cpp | 40 | ||||
-rw-r--r-- | fpdfsdk/pwl/cpwl_edit_impl.cpp | 10 |
2 files changed, 6 insertions, 44 deletions
diff --git a/fpdfsdk/pwl/cpwl_edit.cpp b/fpdfsdk/pwl/cpwl_edit.cpp index 6c867ca456..41f2517a0a 100644 --- a/fpdfsdk/pwl/cpwl_edit.cpp +++ b/fpdfsdk/pwl/cpwl_edit.cpp @@ -14,8 +14,6 @@ #include "core/fpdfapi/font/cpdf_font.h" #include "core/fpdfdoc/cpvt_word.h" #include "core/fxcrt/fx_safe_types.h" -#include "core/fxcrt/xml/cxml_content.h" -#include "core/fxcrt/xml/cxml_element.h" #include "core/fxge/cfx_graphstatedata.h" #include "core/fxge/cfx_pathdata.h" #include "core/fxge/cfx_renderdevice.h" @@ -40,43 +38,7 @@ ByteString CPWL_Edit::GetClassName() const { } void CPWL_Edit::SetText(const WideString& csText) { - WideString swText = csText; - if (!HasFlag(PES_RICH)) { - m_pEdit->SetText(swText); - return; - } - - ByteString sValue = ByteString::FromUnicode(swText); - std::unique_ptr<CXML_Element> pXML( - CXML_Element::Parse(sValue.c_str(), sValue.GetLength())); - if (!pXML) { - m_pEdit->SetText(swText); - return; - } - swText.clear(); - - bool bFirst = true; - size_t nCount = pXML->CountChildren(); - for (size_t i = 0; i < nCount; ++i) { - CXML_Element* pSubElement = ToElement(pXML->GetChild(i)); - if (!pSubElement || !pSubElement->GetTagName().EqualNoCase("p")) - continue; - - WideString swSection; - size_t nSubChild = pSubElement->CountChildren(); - for (size_t j = 0; j < nSubChild; ++j) { - CXML_Content* pSubContent = ToContent(pSubElement->GetChild(j)); - if (pSubContent) - swSection += pSubContent->m_Content; - } - if (bFirst) - bFirst = false; - else - swText += FWL_VKEY_Return; - swText += swSection; - } - - m_pEdit->SetText(swText); + m_pEdit->SetText(csText); } bool CPWL_Edit::RePosChildWnd() { diff --git a/fpdfsdk/pwl/cpwl_edit_impl.cpp b/fpdfsdk/pwl/cpwl_edit_impl.cpp index cb774e5ef9..6d9fd20445 100644 --- a/fpdfsdk/pwl/cpwl_edit_impl.cpp +++ b/fpdfsdk/pwl/cpwl_edit_impl.cpp @@ -1808,16 +1808,16 @@ CPVT_WordPlace CPWL_EditImpl::DoInsertText(const CPVT_WordPlace& place, for (int32_t i = 0, sz = sText.GetLength(); i < sz; i++) { uint16_t word = sText[i]; switch (word) { - case 0x0D: + case '\r': wp = m_pVT->InsertSection(wp); - if (i + 1 < sz && sText[i + 1] == 0x0A) + if (i + 1 < sz && sText[i + 1] == '\n') i++; break; - case 0x0A: + case '\n': wp = m_pVT->InsertSection(wp); break; - case 0x09: - word = 0x20; + case '\t': + word = ' '; FX_FALLTHROUGH; default: wp = |