Index: fpdfsdk/formfiller/cffl_formfiller.cpp |
diff --git a/fpdfsdk/formfiller/cffl_formfiller.cpp b/fpdfsdk/formfiller/cffl_formfiller.cpp |
index 7aeda57c2e3950f0bb29f84e80e4c86e088a0c04..827b9b09ca829dd8d89b8c68619a7f81f0e66525 100644 |
--- a/fpdfsdk/formfiller/cffl_formfiller.cpp |
+++ b/fpdfsdk/formfiller/cffl_formfiller.cpp |
@@ -527,22 +527,21 @@ FX_BOOL CFFL_FormFiller::CommitData(CPDFSDK_PageView* pPageView, |
FX_BOOL bExit = FALSE; |
CFFL_InteractiveFormFiller* pFormFiller = |
m_pEnv->GetInteractiveFormFiller(); |
- pFormFiller->OnKeyStrokeCommit(m_pWidget, pPageView, bRC, bExit, nFlag); |
- if (bExit) |
+ CPDFSDK_Annot::ObservedPtr pObserved(m_pWidget); |
+ pFormFiller->OnKeyStrokeCommit(&pObserved, pPageView, bRC, bExit, nFlag); |
+ if (!pObserved || bExit) |
return TRUE; |
if (!bRC) { |
ResetPDFWindow(pPageView, FALSE); |
return TRUE; |
} |
- |
- pFormFiller->OnValidate(m_pWidget, pPageView, bRC, bExit, nFlag); |
- if (bExit) |
+ pFormFiller->OnValidate(&pObserved, pPageView, bRC, bExit, nFlag); |
+ if (!pObserved || bExit) |
return TRUE; |
if (!bRC) { |
ResetPDFWindow(pPageView, FALSE); |
return TRUE; |
} |
- |
SaveData(pPageView); |
pFormFiller->OnCalculate(m_pWidget, pPageView, bExit, nFlag); |
if (bExit) |