Move CFWL_WidgetProperties::m_WidgetRect to CFWL_Widget.

It is always passed in as an empty rect by the callers during
construction of a widget, so there is no reason to keep it in
the properties struct used by said callers.

Change-Id: Ib4b467d58a7c766e7de113b9de2946099e094013
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/72774
Commit-Queue: Tom Sepez <tsepez@chromium.org>
Reviewed-by: Lei Zhang <thestig@chromium.org>
diff --git a/xfa/fwl/cfwl_checkbox.cpp b/xfa/fwl/cfwl_checkbox.cpp
index 458fb45..a614f84 100644
--- a/xfa/fwl/cfwl_checkbox.cpp
+++ b/xfa/fwl/cfwl_checkbox.cpp
@@ -107,10 +107,8 @@
 }
 
 void CFWL_CheckBox::Layout() {
-  GetProperties()->m_WidgetRect.width =
-      FXSYS_roundf(GetProperties()->m_WidgetRect.width);
-  GetProperties()->m_WidgetRect.height =
-      FXSYS_roundf(GetProperties()->m_WidgetRect.height);
+  m_WidgetRect.width = FXSYS_roundf(m_WidgetRect.width);
+  m_WidgetRect.height = FXSYS_roundf(m_WidgetRect.height);
   m_ClientRect = GetClientRect();
 
   float fTextLeft = m_ClientRect.left + m_fBoxHeight;
diff --git a/xfa/fwl/cfwl_combobox.cpp b/xfa/fwl/cfwl_combobox.cpp
index 1e7fdbc..23bdcde 100644
--- a/xfa/fwl/cfwl_combobox.cpp
+++ b/xfa/fwl/cfwl_combobox.cpp
@@ -80,8 +80,8 @@
 }
 
 FWL_WidgetHit CFWL_ComboBox::HitTest(const CFX_PointF& point) {
-  CFX_RectF rect(0, 0, GetProperties()->m_WidgetRect.width - m_BtnRect.width,
-                 GetProperties()->m_WidgetRect.height);
+  CFX_RectF rect(0, 0, m_WidgetRect.width - m_BtnRect.width,
+                 m_WidgetRect.height);
   if (rect.Contains(point))
     return FWL_WidgetHit::Edit;
   if (m_BtnRect.Contains(point))
@@ -183,7 +183,7 @@
 }
 
 CFX_RectF CFWL_ComboBox::GetBBox() const {
-  CFX_RectF rect = GetProperties()->m_WidgetRect;
+  CFX_RectF rect = m_WidgetRect;
   if (!m_pListBox || !IsDropListVisible())
     return rect;
 
@@ -224,10 +224,8 @@
       fPopupMin = fItemHeight * 3 + fBorder * 2;
 
     float fPopupMax = fItemHeight * iItems + fBorder * 2;
-    CFX_RectF rtList(m_ClientRect.left, 0, GetProperties()->m_WidgetRect.width,
-                     0);
-    GetPopupPos(fPopupMin, fPopupMax, GetProperties()->m_WidgetRect, &rtList);
-
+    CFX_RectF rtList(m_ClientRect.left, 0, m_WidgetRect.width, 0);
+    GetPopupPos(fPopupMin, fPopupMax, m_WidgetRect, &rtList);
     m_pListBox->SetWidgetRect(rtList);
     m_pListBox->Update();
   }
diff --git a/xfa/fwl/cfwl_combolist.cpp b/xfa/fwl/cfwl_combolist.cpp
index 46f6e9c..c6fb591 100644
--- a/xfa/fwl/cfwl_combolist.cpp
+++ b/xfa/fwl/cfwl_combolist.cpp
@@ -64,8 +64,7 @@
 }
 
 CFX_PointF CFWL_ComboList::ClientToOuter(const CFX_PointF& point) {
-  return point + CFX_PointF(GetProperties()->m_WidgetRect.left,
-                            GetProperties()->m_WidgetRect.top);
+  return point + CFX_PointF(m_WidgetRect.left, m_WidgetRect.top);
 }
 
 void CFWL_ComboList::OnProcessMessage(CFWL_Message* pMessage) {
@@ -225,9 +224,7 @@
 
       SetSelection(hItem, hItem, true);
       ScrollToVisible(hItem);
-      CFX_RectF rtInvalidate(0, 0, GetProperties()->m_WidgetRect.width,
-                             GetProperties()->m_WidgetRect.height);
-      RepaintRect(rtInvalidate);
+      RepaintRect(CFX_RectF(0, 0, m_WidgetRect.width, m_WidgetRect.height));
       break;
     }
     default:
diff --git a/xfa/fwl/cfwl_datetimepicker.cpp b/xfa/fwl/cfwl_datetimepicker.cpp
index c27bb07..4a0addb 100644
--- a/xfa/fwl/cfwl_datetimepicker.cpp
+++ b/xfa/fwl/cfwl_datetimepicker.cpp
@@ -69,8 +69,7 @@
 }
 
 FWL_WidgetHit CFWL_DateTimePicker::HitTest(const CFX_PointF& point) {
-  CFX_RectF rect(0, 0, GetProperties()->m_WidgetRect.width,
-                 GetProperties()->m_WidgetRect.height);
+  CFX_RectF rect(0, 0, m_WidgetRect.width, m_WidgetRect.height);
   if (rect.Contains(point))
     return FWL_WidgetHit::Edit;
   if (NeedsToShowButton())
@@ -158,15 +157,14 @@
 }
 
 CFX_RectF CFWL_DateTimePicker::GetBBox() const {
-  CFX_RectF rect = GetProperties()->m_WidgetRect;
+  CFX_RectF rect = m_WidgetRect;
   if (NeedsToShowButton())
     rect.width += m_fBtn;
   if (!IsMonthCalendarVisible())
     return rect;
 
   CFX_RectF rtMonth = m_pMonthCal->GetWidgetRect();
-  rtMonth.Offset(GetProperties()->m_WidgetRect.left,
-                 GetProperties()->m_WidgetRect.top);
+  rtMonth.Offset(m_WidgetRect.left, m_WidgetRect.top);
   rect.Union(rtMonth);
   return rect;
 }
@@ -206,7 +204,7 @@
     CFX_RectF rtMonthCal = m_pMonthCal->GetAutosizedWidgetRect();
     float fPopupMin = rtMonthCal.height;
     float fPopupMax = rtMonthCal.height;
-    CFX_RectF rtAnchor(GetProperties()->m_WidgetRect);
+    CFX_RectF rtAnchor = m_WidgetRect;
     rtAnchor.width = rtMonthCal.width;
     rtMonthCal.left = m_ClientRect.left;
     rtMonthCal.top = rtAnchor.Height();
@@ -226,9 +224,7 @@
     m_pEdit->GetDelegate()->OnProcessMessage(&msg);
   }
 
-  CFX_RectF rtInvalidate(0, 0, GetProperties()->m_WidgetRect.width,
-                         GetProperties()->m_WidgetRect.height);
-
+  CFX_RectF rtInvalidate(0, 0, m_WidgetRect.width, m_WidgetRect.height);
   CFX_RectF rtCal = m_pMonthCal->GetWidgetRect();
   rtInvalidate.Union(rtCal);
   rtInvalidate.Inflate(2, 2);
@@ -365,8 +361,8 @@
   if (bSet) {
     GetProperties()->m_dwStates |= FWL_WGTSTATE_Focused;
     if (m_pEdit && !(m_pEdit->GetStylesEx() & FWL_STYLEEXT_EDT_ReadOnly)) {
-      m_BtnRect = CFX_RectF(GetProperties()->m_WidgetRect.width, 0, m_fBtn,
-                            GetProperties()->m_WidgetRect.height - 1);
+      m_BtnRect =
+          CFX_RectF(m_WidgetRect.width, 0, m_fBtn, m_WidgetRect.height - 1);
     }
     rtInvalidate = m_BtnRect;
     pMsg->SetDstTarget(m_pEdit.get());
diff --git a/xfa/fwl/cfwl_edit.cpp b/xfa/fwl/cfwl_edit.cpp
index c5b4b74..2492e4d 100644
--- a/xfa/fwl/cfwl_edit.cpp
+++ b/xfa/fwl/cfwl_edit.cpp
@@ -63,7 +63,7 @@
 }
 
 CFX_RectF CFWL_Edit::GetWidgetRect() {
-  CFX_RectF rect = GetProperties()->m_WidgetRect;
+  CFX_RectF rect = m_WidgetRect;
   if (GetProperties()->m_dwStyleExes & FWL_STYLEEXT_EDT_OuterScrollbar) {
     float scrollbarWidth = GetThemeProvider()->GetScrollBarWidth();
     if (IsShowScrollBar(true)) {
@@ -864,11 +864,9 @@
   }
 
   CFWL_Widget* pOuter = this;
-  pRect->Offset(GetProperties()->m_WidgetRect.left,
-                GetProperties()->m_WidgetRect.top);
+  pRect->Offset(m_WidgetRect.left, m_WidgetRect.top);
   while (pOuter->GetOuter()) {
     pOuter = pOuter->GetOuter();
-
     CFX_RectF rtOuter = pOuter->GetWidgetRect();
     pRect->Offset(rtOuter.left, rtOuter.top);
   }
@@ -1051,9 +1049,7 @@
   if (!bRepaint)
     return;
 
-  CFX_RectF rtInvalidate(0, 0, GetProperties()->m_WidgetRect.width,
-                         GetProperties()->m_WidgetRect.height);
-  RepaintRect(rtInvalidate);
+  RepaintRect(CFX_RectF(0, 0, m_WidgetRect.width, m_WidgetRect.height));
 }
 
 void CFWL_Edit::OnLButtonDown(CFWL_MessageMouse* pMsg) {
diff --git a/xfa/fwl/cfwl_listbox.cpp b/xfa/fwl/cfwl_listbox.cpp
index c5992ad..f4ac843 100644
--- a/xfa/fwl/cfwl_listbox.cpp
+++ b/xfa/fwl/cfwl_listbox.cpp
@@ -789,9 +789,7 @@
 
   SetFocusItem(pItem);
   ScrollToVisible(pItem);
-
-  RepaintRect(CFX_RectF(0, 0, GetProperties()->m_WidgetRect.width,
-                        GetProperties()->m_WidgetRect.height));
+  RepaintRect(CFX_RectF(0, 0, m_WidgetRect.width, m_WidgetRect.height));
 }
 
 bool CFWL_ListBox::OnScroll(CFWL_ScrollBar* pScrollBar,
diff --git a/xfa/fwl/cfwl_widget.cpp b/xfa/fwl/cfwl_widget.cpp
index 9a634eb..aeb819f 100644
--- a/xfa/fwl/cfwl_widget.cpp
+++ b/xfa/fwl/cfwl_widget.cpp
@@ -59,7 +59,7 @@
 }
 
 CFX_RectF CFWL_Widget::GetWidgetRect() {
-  return m_pProperties->m_WidgetRect;
+  return m_WidgetRect;
 }
 
 void CFWL_Widget::InflateWidgetRect(CFX_RectF& rect) {
@@ -71,7 +71,7 @@
 }
 
 void CFWL_Widget::SetWidgetRect(const CFX_RectF& rect) {
-  m_pProperties->m_WidgetRect = rect;
+  m_WidgetRect = rect;
 }
 
 CFX_RectF CFWL_Widget::GetClientRect() {
@@ -204,8 +204,7 @@
 }
 
 CFX_RectF CFWL_Widget::GetEdgeRect() const {
-  CFX_RectF rtEdge(0, 0, m_pProperties->m_WidgetRect.width,
-                   m_pProperties->m_WidgetRect.height);
+  CFX_RectF rtEdge(0, 0, m_WidgetRect.width, m_WidgetRect.height);
   if (HasBorder())
     rtEdge.Deflate(GetCXBorderSize(), GetCYBorderSize());
   return rtEdge;
@@ -220,8 +219,7 @@
 }
 
 CFX_RectF CFWL_Widget::GetRelativeRect() const {
-  return CFX_RectF(0, 0, m_pProperties->m_WidgetRect.width,
-                   m_pProperties->m_WidgetRect.height);
+  return CFX_RectF(0, 0, m_WidgetRect.width, m_WidgetRect.height);
 }
 
 CFX_SizeF CFWL_Widget::CalcTextSize(const WideString& wsText,
@@ -315,10 +313,8 @@
   if (pParent == this)
     return CFX_SizeF();
 
+  CFX_SizeF szRet(m_WidgetRect.left, m_WidgetRect.top);
   CFWL_WidgetMgr* pWidgetMgr = GetOwnerApp()->GetWidgetMgr();
-  CFX_SizeF szRet(m_pProperties->m_WidgetRect.left,
-                  m_pProperties->m_WidgetRect.top);
-
   CFWL_Widget* pDstWidget = GetParent();
   while (pDstWidget && pDstWidget != pParent) {
     CFX_RectF rtDst = pDstWidget->GetWidgetRect();
diff --git a/xfa/fwl/cfwl_widget.h b/xfa/fwl/cfwl_widget.h
index d99fbef..c475aa9 100644
--- a/xfa/fwl/cfwl_widget.h
+++ b/xfa/fwl/cfwl_widget.h
@@ -155,6 +155,8 @@
                   CFWL_Part iPartBorder,
                   const CFX_Matrix& pMatrix);
 
+  CFX_RectF m_WidgetRect;
+
  private:
   void LockUpdate() { m_iLock++; }
   void UnlockUpdate() {
diff --git a/xfa/fwl/cfwl_widgetproperties.cpp b/xfa/fwl/cfwl_widgetproperties.cpp
index 4dc3cd5..f592d7b 100644
--- a/xfa/fwl/cfwl_widgetproperties.cpp
+++ b/xfa/fwl/cfwl_widgetproperties.cpp
@@ -8,4 +8,7 @@
 
 CFWL_WidgetProperties::CFWL_WidgetProperties() = default;
 
+CFWL_WidgetProperties::CFWL_WidgetProperties(
+    const CFWL_WidgetProperties& that) = default;
+
 CFWL_WidgetProperties::~CFWL_WidgetProperties() = default;
diff --git a/xfa/fwl/cfwl_widgetproperties.h b/xfa/fwl/cfwl_widgetproperties.h
index 6733306..8d3c8ec 100644
--- a/xfa/fwl/cfwl_widgetproperties.h
+++ b/xfa/fwl/cfwl_widgetproperties.h
@@ -7,19 +7,18 @@
 #ifndef XFA_FWL_CFWL_WIDGETPROPERTIES_H_
 #define XFA_FWL_CFWL_WIDGETPROPERTIES_H_
 
-#include "core/fxcrt/fx_coordinates.h"
 #include "core/fxcrt/fx_system.h"
 #include "xfa/fwl/fwl_widgetdef.h"
 
 class CFWL_WidgetProperties {
  public:
   CFWL_WidgetProperties();
+  CFWL_WidgetProperties(const CFWL_WidgetProperties& that);
   ~CFWL_WidgetProperties();
 
   uint32_t m_dwStyles = FWL_WGTSTYLE_Child;
   uint32_t m_dwStyleExes = 0;
   uint32_t m_dwStates = 0;
-  CFX_RectF m_WidgetRect;
 };
 
 #endif  // XFA_FWL_CFWL_WIDGETPROPERTIES_H_