Index: fpdfsdk/src/formfiller/FFL_FormFiller.cpp |
diff --git a/fpdfsdk/src/formfiller/FFL_FormFiller.cpp b/fpdfsdk/src/formfiller/FFL_FormFiller.cpp |
index 42177f59329654003ee12d6f109555009f10079d..642e5e896487c95d35549c9226077e6447aa1251 100644 |
--- a/fpdfsdk/src/formfiller/FFL_FormFiller.cpp |
+++ b/fpdfsdk/src/formfiller/FFL_FormFiller.cpp |
@@ -242,8 +242,7 @@ FX_BOOL CFFL_FormFiller::OnChar(CPDFSDK_Annot* pAnnot, |
return FALSE; |
} |
-FX_BOOL CFFL_FormFiller::SetFocusForAnnot(CPDFSDK_Annot* pAnnot, |
- FX_UINT nFlag) { |
+void CFFL_FormFiller::SetFocusForAnnot(CPDFSDK_Annot* pAnnot, FX_UINT nFlag) { |
CPDFSDK_Widget* pWidget = (CPDFSDK_Widget*)pAnnot; |
CPDFXFA_Page* pPage = pWidget->GetPDFXFAPage(); |
CPDFSDK_Document* pDoc = m_pApp->GetSDKDocument(); |
@@ -254,31 +253,31 @@ FX_BOOL CFFL_FormFiller::SetFocusForAnnot(CPDFSDK_Annot* pAnnot, |
m_bValid = TRUE; |
FX_RECT rcRect = GetViewBBox(pPageView, pAnnot); |
InvalidateRect(rcRect.left, rcRect.top, rcRect.right, rcRect.bottom); |
- return TRUE; |
} |
-FX_BOOL CFFL_FormFiller::KillFocusForAnnot(CPDFSDK_Annot* pAnnot, |
- FX_UINT nFlag) { |
+void CFFL_FormFiller::KillFocusForAnnot(CPDFSDK_Annot* pAnnot, FX_UINT nFlag) { |
if (!IsValid()) |
- return TRUE; |
+ return; |
CPDFSDK_PageView* pPageView = GetCurPageView(); |
+ if (!pPageView) |
+ return; |
+ |
CommitData(pPageView, nFlag); |
if (CPWL_Wnd* pWnd = GetPDFWindow(pPageView, FALSE)) |
pWnd->KillFocus(); |
+ FX_BOOL bDestroyPDFWindow; |
switch (m_pWidget->GetFieldType()) { |
case FIELDTYPE_PUSHBUTTON: |
case FIELDTYPE_CHECKBOX: |
case FIELDTYPE_RADIOBUTTON: |
- EscapeFiller(pPageView, TRUE); |
- break; |
+ bDestroyPDFWindow = TRUE; |
default: |
- EscapeFiller(pPageView, FALSE); |
- break; |
+ bDestroyPDFWindow = FALSE; |
} |
- return TRUE; |
+ EscapeFiller(pPageView, bDestroyPDFWindow); |
} |
FX_BOOL CFFL_FormFiller::IsValid() const { |