From 42d1c1cca78f9cd2f64136dcf99fad207c9f4099 Mon Sep 17 00:00:00 2001 From: Wei Li Date: Tue, 22 Mar 2016 12:52:50 -0700 Subject: 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 . --- fpdfsdk/fsdk_baseform.cpp | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) diff --git a/fpdfsdk/fsdk_baseform.cpp b/fpdfsdk/fsdk_baseform.cpp index bfdcb2dbca..4124ebfbce 100644 --- a/fpdfsdk/fsdk_baseform.cpp +++ b/fpdfsdk/fsdk_baseform.cpp @@ -237,25 +237,20 @@ FX_BOOL CPDFSDK_Widget::OnXFAAAction(PDFSDK_XFAAActionType eXFAAAT, if (IXFA_Widget* hGroupWidget = GetGroupMixXFAWidget()) { CXFA_WidgetAcc* pAcc = pXFAWidgetHandler->GetDataAcc(hGroupWidget); param.m_pTarget = pAcc; - pXFAWidgetHandler->ProcessEvent(pAcc, ¶m); - } - - { - CXFA_WidgetAcc* pAcc = pXFAWidgetHandler->GetDataAcc(hWidget); - param.m_pTarget = pAcc; - int32_t nRet = pXFAWidgetHandler->ProcessEvent(pAcc, ¶m); - return nRet == XFA_EVENTERROR_Success; + if (pXFAWidgetHandler->ProcessEvent(pAcc, ¶m) != + XFA_EVENTERROR_Success) { + return FALSE; + } } - } 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; } } } -- cgit v1.2.3