diff --git a/fpdfsdk/pwl/cpwl_wnd.cpp b/fpdfsdk/pwl/cpwl_wnd.cpp
index 7859f41..087cfad 100644
--- a/fpdfsdk/pwl/cpwl_wnd.cpp
+++ b/fpdfsdk/pwl/cpwl_wnd.cpp
@@ -97,8 +97,6 @@
 
   void ReleaseCapture() { m_MousePaths.clear(); }
 
-  const CPWL_Wnd* GetFocusedWindow() const { return m_pMainKeyboardWnd.Get(); }
-
  private:
   std::vector<UnownedPtr<CPWL_Wnd>> m_MousePaths;
   std::vector<UnownedPtr<CPWL_Wnd>> m_KeyboardPaths;
@@ -463,10 +461,6 @@
   return m_CreationParams.sBackgroundColor;
 }
 
-void CPWL_Wnd::SetBackgroundColor(const CFX_Color& color) {
-  m_CreationParams.sBackgroundColor = color;
-}
-
 CFX_Color CPWL_Wnd::GetTextColor() const {
   return m_CreationParams.sTextColor;
 }
@@ -720,8 +714,3 @@
   CFX_Matrix mt = GetWindowMatrix();
   return mt.TransformRect(rect);
 }
-
-const CPWL_Wnd* CPWL_Wnd::GetFocused() const {
-  CPWL_MsgControl* pMsgCtrl = GetMsgControl();
-  return pMsgCtrl ? pMsgCtrl->GetFocusedWindow() : nullptr;
-}
diff --git a/fpdfsdk/pwl/cpwl_wnd.h b/fpdfsdk/pwl/cpwl_wnd.h
index e8f1cbf..2be98fc 100644
--- a/fpdfsdk/pwl/cpwl_wnd.h
+++ b/fpdfsdk/pwl/cpwl_wnd.h
@@ -197,10 +197,8 @@
                       const CFX_Matrix& mtUser2Device);
 
   CFX_Color GetBackgroundColor() const;
-  void SetBackgroundColor(const CFX_Color& color);
   CFX_Color GetBorderColor() const;
   CFX_Color GetTextColor() const;
-  void SetTextColor(const CFX_Color& color);
   CFX_Color GetBorderLeftTopColor(BorderStyle nBorderStyle) const;
   CFX_Color GetBorderRightBottomColor(BorderStyle nBorderStyle) const;
   BorderStyle GetBorderStyle() const;
@@ -229,7 +227,6 @@
   bool ClientHitTest(const CFX_PointF& point) const;
   bool IsCaptureMouse() const;
 
-  const CPWL_Wnd* GetFocused() const;
   bool IsFocused() const;
   bool IsReadOnly() const;
   CPWL_ScrollBar* GetVScrollBar() const;
