diff --git a/fpdfsdk/pdfwindow/cpwl_combo_box.cpp b/fpdfsdk/pdfwindow/cpwl_combo_box.cpp
index acebfbe..20cbcd3 100644
--- a/fpdfsdk/pdfwindow/cpwl_combo_box.cpp
+++ b/fpdfsdk/pdfwindow/cpwl_combo_box.cpp
@@ -89,17 +89,17 @@
   return bExit;
 }
 
-bool CPWL_CBListBox::OnCharWithExit(uint16_t nChar,
-                                    bool& bExit,
-                                    uint32_t nFlag) {
-  if (!m_pList->OnChar(nChar, IsSHIFTpressed(nFlag), IsCTRLpressed(nFlag)))
-    return false;
+bool CPWL_CBListBox::IsChar(uint16_t nChar, uint32_t nFlag) const {
+  return m_pList->OnChar(nChar, IsSHIFTpressed(nFlag), IsCTRLpressed(nFlag));
+}
+
+bool CPWL_CBListBox::OnCharNotify(uint16_t nChar, uint32_t nFlag) {
   if (CPWL_ComboBox* pComboBox = (CPWL_ComboBox*)GetParentWindow())
     pComboBox->SetSelectText();
 
+  bool bExit = false;
   OnNotifySelChanged(true, bExit, nFlag);
-
-  return true;
+  return bExit;
 }
 
 void CPWL_CBButton::GetThisAppearanceStream(std::ostringstream* psAppStream) {
@@ -530,8 +530,9 @@
       return false;
   }
 #endif  // PDF_ENABLE_XFA
-  bool bExit = false;
-  return m_pList->OnCharWithExit(nChar, bExit, nFlag) ? bExit : false;
+  if (!m_pList->IsChar(nChar, nFlag))
+    return false;
+  return m_pList->OnCharNotify(nChar, nFlag);
 }
 
 void CPWL_ComboBox::NotifyLButtonDown(CPWL_Wnd* child, const CFX_PointF& pos) {
diff --git a/fpdfsdk/pdfwindow/cpwl_combo_box.h b/fpdfsdk/pdfwindow/cpwl_combo_box.h
index e60e781..37b3eb5 100644
--- a/fpdfsdk/pdfwindow/cpwl_combo_box.h
+++ b/fpdfsdk/pdfwindow/cpwl_combo_box.h
@@ -24,7 +24,8 @@
 
   bool IsMovementKey(uint16_t nChar) const;
   bool OnMovementKeyDown(uint16_t nChar, uint32_t nFlag);
-  bool OnCharWithExit(uint16_t nChar, bool& bExit, uint32_t nFlag);
+  bool IsChar(uint16_t nChar, uint32_t nFlag) const;
+  bool OnCharNotify(uint16_t nChar, uint32_t nFlag);
 };
 
 #define PWL_COMBOBOX_BUTTON_WIDTH 13
