diff --git a/fpdfsdk/pdfwindow/cpwl_combo_box.cpp b/fpdfsdk/pdfwindow/cpwl_combo_box.cpp
index 792524b..140aff8 100644
--- a/fpdfsdk/pdfwindow/cpwl_combo_box.cpp
+++ b/fpdfsdk/pdfwindow/cpwl_combo_box.cpp
@@ -40,7 +40,7 @@
   if (CPWL_Wnd* pParent = GetParentWindow())
     pParent->NotifyLButtonUp(this, point);
 
-  return !OnNotifySelChanged(false, nFlag);
+  return !OnNotifySelectionChanged(false, nFlag);
 }
 
 bool CPWL_CBListBox::IsMovementKey(uint16_t nChar) const {
@@ -80,7 +80,7 @@
       m_pList->OnVK_RIGHT(IsSHIFTpressed(nFlag), IsCTRLpressed(nFlag));
       break;
   }
-  return OnNotifySelChanged(true, nFlag);
+  return OnNotifySelectionChanged(true, nFlag);
 }
 
 bool CPWL_CBListBox::IsChar(uint16_t nChar, uint32_t nFlag) const {
@@ -91,7 +91,7 @@
   if (CPWL_ComboBox* pComboBox = (CPWL_ComboBox*)GetParentWindow())
     pComboBox->SetSelectText();
 
-  return OnNotifySelChanged(true, nFlag);
+  return OnNotifySelectionChanged(true, nFlag);
 }
 
 void CPWL_CBButton::GetThisAppearanceStream(std::ostringstream* psAppStream) {
diff --git a/fpdfsdk/pdfwindow/cpwl_list_box.cpp b/fpdfsdk/pdfwindow/cpwl_list_box.cpp
index e3a2e77..61f9aaf 100644
--- a/fpdfsdk/pdfwindow/cpwl_list_box.cpp
+++ b/fpdfsdk/pdfwindow/cpwl_list_box.cpp
@@ -223,7 +223,7 @@
     case FWL_VKEY_Delete:
       break;
   }
-  OnNotifySelChanged(true, nFlag);
+  OnNotifySelectionChanged(true, nFlag);
   return true;
 }
 
@@ -233,7 +233,7 @@
   if (!m_pList->OnChar(nChar, IsSHIFTpressed(nFlag), IsCTRLpressed(nFlag)))
     return false;
 
-  OnNotifySelChanged(true, nFlag);
+  OnNotifySelectionChanged(true, nFlag);
   return true;
 }
 
@@ -258,7 +258,7 @@
     ReleaseCapture();
     m_bMouseDown = false;
   }
-  OnNotifySelChanged(false, nFlag);
+  OnNotifySelectionChanged(false, nFlag);
   return true;
 }
 
@@ -301,7 +301,7 @@
   m_pList->SetPlateRect(GetListRect());
 }
 
-bool CPWL_ListBox::OnNotifySelChanged(bool bKeyDown, uint32_t nFlag) {
+bool CPWL_ListBox::OnNotifySelectionChanged(bool bKeyDown, uint32_t nFlag) {
   if (!m_pFillerNotify)
     return false;
 
@@ -417,6 +417,6 @@
   else
     m_pList->OnVK_UP(IsSHIFTpressed(nFlag), IsCTRLpressed(nFlag));
 
-  OnNotifySelChanged(false, nFlag);
+  OnNotifySelectionChanged(false, nFlag);
   return true;
 }
diff --git a/fpdfsdk/pdfwindow/cpwl_list_box.h b/fpdfsdk/pdfwindow/cpwl_list_box.h
index d4581c0..f5835a1 100644
--- a/fpdfsdk/pdfwindow/cpwl_list_box.h
+++ b/fpdfsdk/pdfwindow/cpwl_list_box.h
@@ -70,7 +70,7 @@
 
   virtual CFX_WideString GetText() const;
 
-  bool OnNotifySelChanged(bool bKeyDown, uint32_t nFlag);
+  bool OnNotifySelectionChanged(bool bKeyDown, uint32_t nFlag);
 
   void AddString(const CFX_WideString& str);
   void SetTopVisibleIndex(int32_t nItemIndex);
