summaryrefslogtreecommitdiff
path: root/fpdfsdk/src/pdfwindow/PWL_ComboBox.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'fpdfsdk/src/pdfwindow/PWL_ComboBox.cpp')
-rw-r--r--fpdfsdk/src/pdfwindow/PWL_ComboBox.cpp45
1 files changed, 45 insertions, 0 deletions
diff --git a/fpdfsdk/src/pdfwindow/PWL_ComboBox.cpp b/fpdfsdk/src/pdfwindow/PWL_ComboBox.cpp
index f695351bc4..7582ae412b 100644
--- a/fpdfsdk/src/pdfwindow/PWL_ComboBox.cpp
+++ b/fpdfsdk/src/pdfwindow/PWL_ComboBox.cpp
@@ -466,6 +466,12 @@ void CPWL_ComboBox::SetPopup(FX_BOOL bPopup) {
if (bPopup) {
if (m_pFillerNotify) {
+#ifdef PDF_ENABLE_XFA
+ FX_BOOL bExit = FALSE;
+ m_pFillerNotify->OnPopupPreOpen(GetAttachedData(), bExit, 0);
+ if (bExit)
+ return;
+#endif // PDF_ENABLE_XFA
int32_t nWhere = 0;
FX_FLOAT fPopupRet = 0.0f;
FX_FLOAT fPopupMin = 0.0f;
@@ -493,6 +499,12 @@ void CPWL_ComboBox::SetPopup(FX_BOOL bPopup) {
m_nPopupWhere = nWhere;
Move(rcWindow, TRUE, TRUE);
+#ifdef PDF_ENABLE_XFA
+ bExit = FALSE;
+ m_pFillerNotify->OnPopupPostOpen(GetAttachedData(), bExit, 0);
+ if (bExit)
+ return;
+#endif // PDF_ENABLE_XFA
}
}
} else {
@@ -513,6 +525,17 @@ FX_BOOL CPWL_ComboBox::OnKeyDown(FX_WORD nChar, FX_DWORD nFlag) {
case FWL_VKEY_Up:
if (m_pList->GetCurSel() > 0) {
FX_BOOL bExit = FALSE;
+#ifdef PDF_ENABLE_XFA
+ if (m_pFillerNotify) {
+ m_pFillerNotify->OnPopupPreOpen(GetAttachedData(), bExit, nFlag);
+ if (bExit)
+ return FALSE;
+ bExit = FALSE;
+ m_pFillerNotify->OnPopupPostOpen(GetAttachedData(), bExit, nFlag);
+ if (bExit)
+ return FALSE;
+ }
+#endif // PDF_ENABLE_XFA
if (m_pList->OnKeyDownWithExit(nChar, bExit, nFlag)) {
if (bExit)
return FALSE;
@@ -523,6 +546,17 @@ FX_BOOL CPWL_ComboBox::OnKeyDown(FX_WORD nChar, FX_DWORD nFlag) {
case FWL_VKEY_Down:
if (m_pList->GetCurSel() < m_pList->GetCount() - 1) {
FX_BOOL bExit = FALSE;
+#ifdef PDF_ENABLE_XFA
+ if (m_pFillerNotify) {
+ m_pFillerNotify->OnPopupPreOpen(GetAttachedData(), bExit, nFlag);
+ if (bExit)
+ return FALSE;
+ bExit = FALSE;
+ m_pFillerNotify->OnPopupPostOpen(GetAttachedData(), bExit, nFlag);
+ if (bExit)
+ return FALSE;
+ }
+#endif // PDF_ENABLE_XFA
if (m_pList->OnKeyDownWithExit(nChar, bExit, nFlag)) {
if (bExit)
return FALSE;
@@ -550,6 +584,17 @@ FX_BOOL CPWL_ComboBox::OnChar(FX_WORD nChar, FX_DWORD nFlag) {
return m_pEdit->OnChar(nChar, nFlag);
FX_BOOL bExit = FALSE;
+#ifdef PDF_ENABLE_XFA
+ if (m_pFillerNotify) {
+ m_pFillerNotify->OnPopupPreOpen(GetAttachedData(), bExit, nFlag);
+ if (bExit)
+ return FALSE;
+
+ m_pFillerNotify->OnPopupPostOpen(GetAttachedData(), bExit, nFlag);
+ if (bExit)
+ return FALSE;
+ }
+#endif // PDF_ENABLE_XFA
return m_pList->OnCharWithExit(nChar, bExit, nFlag) ? bExit : FALSE;
}