summaryrefslogtreecommitdiff
path: root/fpdfsdk/formfiller/cffl_formfiller.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'fpdfsdk/formfiller/cffl_formfiller.cpp')
-rw-r--r--fpdfsdk/formfiller/cffl_formfiller.cpp19
1 files changed, 16 insertions, 3 deletions
diff --git a/fpdfsdk/formfiller/cffl_formfiller.cpp b/fpdfsdk/formfiller/cffl_formfiller.cpp
index 98a14e61af..cd531413c2 100644
--- a/fpdfsdk/formfiller/cffl_formfiller.cpp
+++ b/fpdfsdk/formfiller/cffl_formfiller.cpp
@@ -258,7 +258,8 @@ void CFFL_FormFiller::KillFocusForAnnot(CPDFSDK_Annot* pAnnot, uint32_t nFlag) {
if (!pPageView)
return;
- CommitData(pPageView, nFlag);
+ if (!CommitData(pPageView, nFlag))
+ return;
if (CPWL_Wnd* pWnd = GetPDFWindow(pPageView, false))
pWnd->KillFocus();
@@ -493,25 +494,37 @@ bool CFFL_FormFiller::CommitData(CPDFSDK_PageView* pPageView, uint32_t nFlag) {
m_pFormFillEnv->GetInteractiveFormFiller();
CPDFSDK_Annot::ObservedPtr pObserved(m_pWidget.Get());
pFormFiller->OnKeyStrokeCommit(&pObserved, pPageView, bRC, bExit, nFlag);
- if (!pObserved || bExit)
+ if (!pObserved)
+ return false;
+ if (bExit)
return true;
if (!bRC) {
ResetPDFWindow(pPageView, false);
return true;
}
+
pFormFiller->OnValidate(&pObserved, pPageView, bRC, bExit, nFlag);
- if (!pObserved || bExit)
+ if (!pObserved)
+ return false;
+ if (bExit)
return true;
if (!bRC) {
ResetPDFWindow(pPageView, false);
return true;
}
+
SaveData(pPageView);
pFormFiller->OnCalculate(m_pWidget.Get(), pPageView, bExit, nFlag);
+ if (!pObserved)
+ return false;
if (bExit)
return true;
pFormFiller->OnFormat(m_pWidget.Get(), pPageView, bExit, nFlag);
+ if (!pObserved)
+ return false;
+ if (bExit)
+ return true;
}
return true;
}