Fix CPDFSDK_Widget::OnXFAAAction()
Fix a couple issues with OnXFAAAction():
-- radio button widget should not call ProcessEvent() twice;
-- UpdateDocView should be called before returning;
R=jun_fang@foxitsoftware.com
Review URL: https://codereview.chromium.org/1809073004 .
diff --git a/fpdfsdk/fsdk_baseform.cpp b/fpdfsdk/fsdk_baseform.cpp
index bfdcb2d..4124ebf 100644
--- a/fpdfsdk/fsdk_baseform.cpp
+++ b/fpdfsdk/fsdk_baseform.cpp
@@ -237,25 +237,20 @@
if (IXFA_Widget* hGroupWidget = GetGroupMixXFAWidget()) {
CXFA_WidgetAcc* pAcc = pXFAWidgetHandler->GetDataAcc(hGroupWidget);
param.m_pTarget = pAcc;
- pXFAWidgetHandler->ProcessEvent(pAcc, ¶m);
+ if (pXFAWidgetHandler->ProcessEvent(pAcc, ¶m) !=
+ XFA_EVENTERROR_Success) {
+ return FALSE;
+ }
}
-
- {
- CXFA_WidgetAcc* pAcc = pXFAWidgetHandler->GetDataAcc(hWidget);
- param.m_pTarget = pAcc;
- int32_t nRet = pXFAWidgetHandler->ProcessEvent(pAcc, ¶m);
- return nRet == XFA_EVENTERROR_Success;
- }
- } else {
- CXFA_WidgetAcc* pAcc = pXFAWidgetHandler->GetDataAcc(hWidget);
- param.m_pTarget = pAcc;
- int32_t nRet = pXFAWidgetHandler->ProcessEvent(pAcc, ¶m);
- return nRet == XFA_EVENTERROR_Success;
}
+ CXFA_WidgetAcc* pAcc = pXFAWidgetHandler->GetDataAcc(hWidget);
+ param.m_pTarget = pAcc;
+ int32_t nRet = pXFAWidgetHandler->ProcessEvent(pAcc, ¶m);
if (IXFA_DocView* pDocView = pDoc->GetXFADocView()) {
pDocView->UpdateDocView();
}
+ return nRet == XFA_EVENTERROR_Success;
}
}
}