Add "AndPaint" to CPWL_EditImpl methods that always paint.
A subsequent set of CLs may split off the setting from the painting
so as to avoid redundant and/or no-op paints.
Change-Id: I91b1bb9f597898991eca4f873a1b5108b0f9ef6d
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/82230
Commit-Queue: Tom Sepez <tsepez@chromium.org>
Reviewed-by: Lei Zhang <thestig@chromium.org>
diff --git a/fpdfsdk/cpdfsdk_appstream.cpp b/fpdfsdk/cpdfsdk_appstream.cpp
index 2d01282..2db422a 100644
--- a/fpdfsdk/cpdfsdk_appstream.cpp
+++ b/fpdfsdk/cpdfsdk_appstream.cpp
@@ -748,10 +748,10 @@
if (IsFloatZero(fFontSize))
pEdit->SetAutoFontSize(true, true);
else
- pEdit->SetFontSize(fFontSize);
+ pEdit->SetFontSizeAndPaint(fFontSize);
pEdit->Initialize();
- pEdit->SetText(sLabel);
+ pEdit->SetTextAndPaint(sLabel);
CFX_FloatRect rcLabelContent = pEdit->GetContentRect();
CFX_FloatRect rcLabel;
@@ -895,7 +895,7 @@
sTemp << GenerateIconAppStream(IconFit, pIconStream, rcIcon);
if (!rcLabel.IsEmpty()) {
- pEdit->SetPlateRect(rcLabel);
+ pEdit->SetPlateRectAndPaint(rcLabel);
ByteString sEdit =
GetEditAppStream(pEdit.get(), CFX_PointF(0.0f, 0.0f), true, 0);
if (sEdit.GetLength() > 0) {
@@ -1540,25 +1540,25 @@
rcEdit.right = rcButton.left;
rcEdit.Normalize();
- pEdit->SetPlateRect(rcEdit);
+ pEdit->SetPlateRectAndPaint(rcEdit);
pEdit->SetAlignmentV(1, true);
float fFontSize = widget_->GetFontSize();
if (IsFloatZero(fFontSize))
pEdit->SetAutoFontSize(true, true);
else
- pEdit->SetFontSize(fFontSize);
+ pEdit->SetFontSizeAndPaint(fFontSize);
pEdit->Initialize();
if (sValue.has_value()) {
- pEdit->SetText(sValue.value());
+ pEdit->SetTextAndPaint(sValue.value());
} else {
int32_t nCurSel = pField->GetSelectedIndex(0);
if (nCurSel < 0)
- pEdit->SetText(pField->GetValue());
+ pEdit->SetTextAndPaint(pField->GetValue());
else
- pEdit->SetText(pField->GetOptionLabel(nCurSel));
+ pEdit->SetTextAndPaint(pField->GetOptionLabel(nCurSel));
}
CFX_FloatRect rcContent = pEdit->GetContentRect();
@@ -1601,10 +1601,11 @@
auto pEdit = std::make_unique<CPWL_EditImpl>();
pEdit->EnableRefresh(false);
pEdit->SetFontMap(&font_map);
- pEdit->SetPlateRect(CFX_FloatRect(rcClient.left, 0.0f, rcClient.right, 0.0f));
+ pEdit->SetPlateRectAndPaint(
+ CFX_FloatRect(rcClient.left, 0.0f, rcClient.right, 0.0f));
float fFontSize = widget_->GetFontSize();
- pEdit->SetFontSize(IsFloatZero(fFontSize) ? 12.0f : fFontSize);
+ pEdit->SetFontSizeAndPaint(IsFloatZero(fFontSize) ? 12.0f : fFontSize);
pEdit->Initialize();
std::ostringstream sList;
@@ -1623,7 +1624,7 @@
}
}
- pEdit->SetText(pField->GetOptionLabel(i));
+ pEdit->SetTextAndPaint(pField->GetOptionLabel(i));
CFX_FloatRect rcContent = pEdit->GetContentRect();
float fItemHeight = rcContent.Height();
@@ -1687,7 +1688,7 @@
pEdit->SetFontMap(&font_map);
CFX_FloatRect rcClient = widget_->GetClientRect();
- pEdit->SetPlateRect(rcClient);
+ pEdit->SetPlateRectAndPaint(rcClient);
pEdit->SetAlignmentH(pControl->GetControlAlignment(), true);
uint32_t dwFieldFlags = pField->GetFieldFlags();
@@ -1716,7 +1717,7 @@
if (nMaxLen > 0) {
if (bCharArray) {
- pEdit->SetCharArray(nMaxLen);
+ pEdit->SetCharArrayAndPaint(nMaxLen);
if (IsFloatZero(fFontSize)) {
fFontSize = CPWL_Edit::GetCharArrayAutoFontSize(
font_map.GetPDFFont(0).Get(), rcClient, nMaxLen);
@@ -1724,17 +1725,17 @@
} else {
if (sValue.has_value())
nMaxLen = sValue.value().GetLength();
- pEdit->SetLimitChar(nMaxLen);
+ pEdit->SetLimitCharAndPaint(nMaxLen);
}
}
if (IsFloatZero(fFontSize))
pEdit->SetAutoFontSize(true, true);
else
- pEdit->SetFontSize(fFontSize);
+ pEdit->SetFontSizeAndPaint(fFontSize);
pEdit->Initialize();
- pEdit->SetText(sValue.value_or(pField->GetValue()));
+ pEdit->SetTextAndPaint(sValue.value_or(pField->GetValue()));
CFX_FloatRect rcContent = pEdit->GetContentRect();
ByteString sEdit =
diff --git a/fpdfsdk/pwl/cpwl_edit.cpp b/fpdfsdk/pwl/cpwl_edit.cpp
index 513ee55..03e853e 100644
--- a/fpdfsdk/pwl/cpwl_edit.cpp
+++ b/fpdfsdk/pwl/cpwl_edit.cpp
@@ -41,7 +41,7 @@
}
void CPWL_Edit::SetText(const WideString& csText) {
- m_pEditImpl->SetText(csText);
+ m_pEditImpl->SetTextAndPaint(csText);
}
bool CPWL_Edit::RePosChildWnd() {
@@ -67,7 +67,7 @@
m_pCaret->SetClipRect(rect);
}
- m_pEditImpl->SetPlateRect(GetClientRect());
+ m_pEditImpl->SetPlateRectAndPaint(GetClientRect());
return true;
}
@@ -258,7 +258,7 @@
}
void CPWL_Edit::SetCharSpace(float fCharSpace) {
- m_pEditImpl->SetCharSpace(fCharSpace);
+ m_pEditImpl->SetCharSpaceAndPaint(fCharSpace);
}
CPVT_WordRange CPWL_Edit::GetSelectWordRange() const {
@@ -297,7 +297,7 @@
if (!HasFlag(PES_CHARARRAY) || nCharArray <= 0)
return;
- m_pEditImpl->SetCharArray(nCharArray);
+ m_pEditImpl->SetCharArrayAndPaint(nCharArray);
m_pEditImpl->SetTextOverflow(true, true);
if (!HasFlag(PWS_AUTOFONTSIZE))
@@ -313,11 +313,11 @@
return;
m_pEditImpl->SetAutoFontSize(false, true);
- m_pEditImpl->SetFontSize(fFontSize);
+ m_pEditImpl->SetFontSizeAndPaint(fFontSize);
}
void CPWL_Edit::SetLimitChar(int32_t nLimitChar) {
- m_pEditImpl->SetLimitChar(nLimitChar);
+ m_pEditImpl->SetLimitCharAndPaint(nLimitChar);
}
CFX_FloatRect CPWL_Edit::GetFocusRect() const {
@@ -539,7 +539,7 @@
}
void CPWL_Edit::SetFontSize(float fFontSize) {
- m_pEditImpl->SetFontSize(fFontSize);
+ m_pEditImpl->SetFontSizeAndPaint(fFontSize);
}
float CPWL_Edit::GetFontSize() const {
diff --git a/fpdfsdk/pwl/cpwl_edit_impl.cpp b/fpdfsdk/pwl/cpwl_edit_impl.cpp
index 5be9483..af2de46 100644
--- a/fpdfsdk/pwl/cpwl_edit_impl.cpp
+++ b/fpdfsdk/pwl/cpwl_edit_impl.cpp
@@ -721,7 +721,7 @@
return m_pVTProvider ? m_pVTProvider->GetFontMap() : nullptr;
}
-void CPWL_EditImpl::SetPlateRect(const CFX_FloatRect& rect) {
+void CPWL_EditImpl::SetPlateRectAndPaint(const CFX_FloatRect& rect) {
m_pVT->SetPlateRect(rect);
m_ptScrollPos = CFX_PointF(rect.left, rect.top);
Paint();
@@ -745,17 +745,17 @@
Paint();
}
-void CPWL_EditImpl::SetLimitChar(int32_t nLimitChar) {
+void CPWL_EditImpl::SetLimitCharAndPaint(int32_t nLimitChar) {
m_pVT->SetLimitChar(nLimitChar);
Paint();
}
-void CPWL_EditImpl::SetCharArray(int32_t nCharArray) {
+void CPWL_EditImpl::SetCharArrayAndPaint(int32_t nCharArray) {
m_pVT->SetCharArray(nCharArray);
Paint();
}
-void CPWL_EditImpl::SetCharSpace(float fCharSpace) {
+void CPWL_EditImpl::SetCharSpaceAndPaint(float fCharSpace) {
m_pVT->SetCharSpace(fCharSpace);
Paint();
}
@@ -778,7 +778,7 @@
Paint();
}
-void CPWL_EditImpl::SetFontSize(float fFontSize) {
+void CPWL_EditImpl::SetFontSizeAndPaint(float fFontSize) {
m_pVT->SetFontSize(fFontSize);
Paint();
}
@@ -918,7 +918,7 @@
return m_SelState.ConvertToWordRange();
}
-void CPWL_EditImpl::SetText(const WideString& sText) {
+void CPWL_EditImpl::SetTextAndPaint(const WideString& sText) {
Clear();
DoInsertText(CPVT_WordPlace(0, 0, -1), sText, FX_CHARSET_Default);
Paint();
diff --git a/fpdfsdk/pwl/cpwl_edit_impl.h b/fpdfsdk/pwl/cpwl_edit_impl.h
index f1e3bb0..040abfb 100644
--- a/fpdfsdk/pwl/cpwl_edit_impl.h
+++ b/fpdfsdk/pwl/cpwl_edit_impl.h
@@ -63,7 +63,7 @@
void Initialize();
// Set the bounding box of the text area.
- void SetPlateRect(const CFX_FloatRect& rect);
+ void SetPlateRectAndPaint(const CFX_FloatRect& rect);
void SetScrollPos(const CFX_PointF& point);
// Set the horizontal text alignment. (nFormat [0:left, 1:middle, 2:right])
@@ -75,14 +75,14 @@
void SetPasswordChar(uint16_t wSubWord, bool bPaint);
// Set the maximum number of words in the text.
- void SetLimitChar(int32_t nLimitChar);
- void SetCharArray(int32_t nCharArray);
- void SetCharSpace(float fCharSpace);
+ void SetLimitCharAndPaint(int32_t nLimitChar);
+ void SetCharArrayAndPaint(int32_t nCharArray);
+ void SetCharSpaceAndPaint(float fCharSpace);
void SetMultiLine(bool bMultiLine, bool bPaint);
void SetAutoReturn(bool bAuto, bool bPaint);
void SetAutoFontSize(bool bAuto, bool bPaint);
void SetAutoScroll(bool bAuto);
- void SetFontSize(float fFontSize);
+ void SetFontSizeAndPaint(float fFontSize);
void SetTextOverflow(bool bAllowed, bool bPaint);
void OnMouseDown(const CFX_PointF& point, bool bShift, bool bCtrl);
void OnMouseMove(const CFX_PointF& point, bool bShift, bool bCtrl);
@@ -92,7 +92,7 @@
void OnVK_RIGHT(bool bShift, bool bCtrl);
void OnVK_HOME(bool bShift, bool bCtrl);
void OnVK_END(bool bShift, bool bCtrl);
- void SetText(const WideString& sText);
+ void SetTextAndPaint(const WideString& sText);
bool InsertWord(uint16_t word, int32_t charset);
bool InsertReturn();
bool Backspace();
diff --git a/fpdfsdk/pwl/cpwl_list_ctrl.cpp b/fpdfsdk/pwl/cpwl_list_ctrl.cpp
index 8959fdc..5f06d46 100644
--- a/fpdfsdk/pwl/cpwl_list_ctrl.cpp
+++ b/fpdfsdk/pwl/cpwl_list_ctrl.cpp
@@ -29,11 +29,11 @@
}
void CPWL_ListCtrl::Item::SetText(const WideString& text) {
- m_pEdit->SetText(text);
+ m_pEdit->SetTextAndPaint(text);
}
void CPWL_ListCtrl::Item::SetFontSize(float fFontSize) {
- m_pEdit->SetFontSize(fFontSize);
+ m_pEdit->SetFontSizeAndPaint(fFontSize);
}
float CPWL_ListCtrl::Item::GetItemHeight() const {