| Index: fpdfsdk/fpdfformfill.cpp
|
| diff --git a/fpdfsdk/fpdfformfill.cpp b/fpdfsdk/fpdfformfill.cpp
|
| index 253091789ce096c3eee389b591e665eedcbb0aa7..8d5b4b789ddbce9983fe68ad1b6ef6847ebb6c36 100644
|
| --- a/fpdfsdk/fpdfformfill.cpp
|
| +++ b/fpdfsdk/fpdfformfill.cpp
|
| @@ -704,26 +704,32 @@ DLLEXPORT void STDCALL FORM_DoPageAAction(FPDF_PAGE page,
|
| int aaType) {
|
| if (!hHandle)
|
| return;
|
| - CPDFSDK_Document* pSDKDoc = ((CPDFDoc_Environment*)hHandle)->GetSDKDocument();
|
| +
|
| + CPDFSDK_Document* pSDKDoc = CPDFSDK_Document::FromFPDFFormHandle(hHandle);
|
| + if (!pSDKDoc)
|
| + return;
|
| +
|
| UnderlyingPageType* pPage = UnderlyingFromFPDFPage(page);
|
| CPDF_Page* pPDFPage = CPDFPageFromFPDFPage(page);
|
| if (!pPDFPage)
|
| return;
|
| - if (pSDKDoc->GetPageView(pPage, false)) {
|
| - CPDFDoc_Environment* pEnv = pSDKDoc->GetEnv();
|
| - CPDFSDK_ActionHandler* pActionHandler = pEnv->GetActionHander();
|
| - CPDF_Dictionary* pPageDict = pPDFPage->m_pFormDict;
|
| - CPDF_AAction aa(pPageDict->GetDictBy("AA"));
|
| - if (FPDFPAGE_AACTION_OPEN == aaType) {
|
| - if (aa.ActionExist(CPDF_AAction::OpenPage)) {
|
| - CPDF_Action action = aa.GetAction(CPDF_AAction::OpenPage);
|
| - pActionHandler->DoAction_Page(action, CPDF_AAction::OpenPage, pSDKDoc);
|
| - }
|
| - } else {
|
| - if (aa.ActionExist(CPDF_AAction::ClosePage)) {
|
| - CPDF_Action action = aa.GetAction(CPDF_AAction::ClosePage);
|
| - pActionHandler->DoAction_Page(action, CPDF_AAction::ClosePage, pSDKDoc);
|
| - }
|
| +
|
| + if (!pSDKDoc->GetPageView(pPage, false))
|
| + return;
|
| +
|
| + CPDFDoc_Environment* pEnv = pSDKDoc->GetEnv();
|
| + CPDFSDK_ActionHandler* pActionHandler = pEnv->GetActionHander();
|
| + CPDF_Dictionary* pPageDict = pPDFPage->m_pFormDict;
|
| + CPDF_AAction aa(pPageDict->GetDictBy("AA"));
|
| + if (FPDFPAGE_AACTION_OPEN == aaType) {
|
| + if (aa.ActionExist(CPDF_AAction::OpenPage)) {
|
| + CPDF_Action action = aa.GetAction(CPDF_AAction::OpenPage);
|
| + pActionHandler->DoAction_Page(action, CPDF_AAction::OpenPage, pSDKDoc);
|
| + }
|
| + } else {
|
| + if (aa.ActionExist(CPDF_AAction::ClosePage)) {
|
| + CPDF_Action action = aa.GetAction(CPDF_AAction::ClosePage);
|
| + pActionHandler->DoAction_Page(action, CPDF_AAction::ClosePage, pSDKDoc);
|
| }
|
| }
|
| }
|
|
|