| Index: fpdfsdk/javascript/Field.cpp
|
| diff --git a/fpdfsdk/javascript/Field.cpp b/fpdfsdk/javascript/Field.cpp
|
| index 852888179ab0462fd8bcc346afd28007ec21dfa9..20c41c6a1976f0657b66cc72ff7693a4b0009bc3 100644
|
| --- a/fpdfsdk/javascript/Field.cpp
|
| +++ b/fpdfsdk/javascript/Field.cpp
|
| @@ -262,7 +262,7 @@ void Field::UpdateFormControl(CPDFSDK_Document* pDocument,
|
| ASSERT(pFormControl);
|
|
|
| CPDFSDK_InterForm* pForm = pDocument->GetInterForm();
|
| - CPDFSDK_Widget* pWidget = pForm->GetWidget(pFormControl);
|
| + CPDFSDK_Widget* pWidget = pForm->GetWidget(pFormControl, false);
|
|
|
| if (pWidget) {
|
| if (bResetAP) {
|
| @@ -292,10 +292,12 @@ void Field::UpdateFormControl(CPDFSDK_Document* pDocument,
|
| }
|
|
|
| CPDFSDK_Widget* Field::GetWidget(CPDFSDK_Document* pDocument,
|
| - CPDF_FormControl* pFormControl) {
|
| + CPDF_FormControl* pFormControl,
|
| + bool createIfNeeded) {
|
| CPDFSDK_InterForm* pInterForm =
|
| static_cast<CPDFSDK_InterForm*>(pDocument->GetInterForm());
|
| - return pInterForm ? pInterForm->GetWidget(pFormControl) : nullptr;
|
| + return pInterForm ? pInterForm->GetWidget(pFormControl, createIfNeeded)
|
| + : nullptr;
|
| }
|
|
|
| FX_BOOL Field::ValueIsOccur(CPDF_FormField* pFormField,
|
| @@ -403,7 +405,7 @@ FX_BOOL Field::borderStyle(IJS_Context* cc,
|
| return FALSE;
|
|
|
| CPDFSDK_Widget* pWidget =
|
| - GetWidget(m_pDocument, GetSmartFieldControl(pFormField));
|
| + GetWidget(m_pDocument, GetSmartFieldControl(pFormField), false);
|
| if (!pWidget)
|
| return FALSE;
|
|
|
| @@ -459,7 +461,7 @@ void Field::SetBorderStyle(CPDFSDK_Document* pDocument,
|
| FX_BOOL bSet = FALSE;
|
| for (int i = 0, sz = pFormField->CountControls(); i < sz; ++i) {
|
| if (CPDFSDK_Widget* pWidget =
|
| - GetWidget(pDocument, pFormField->GetControl(i))) {
|
| + GetWidget(pDocument, pFormField->GetControl(i), false)) {
|
| if (pWidget->GetBorderStyle() != nBorderStyle) {
|
| pWidget->SetBorderStyle(nBorderStyle);
|
| bSet = TRUE;
|
| @@ -473,7 +475,8 @@ void Field::SetBorderStyle(CPDFSDK_Document* pDocument,
|
| return;
|
| if (CPDF_FormControl* pFormControl =
|
| pFormField->GetControl(nControlIndex)) {
|
| - if (CPDFSDK_Widget* pWidget = GetWidget(pDocument, pFormControl)) {
|
| + if (CPDFSDK_Widget* pWidget =
|
| + GetWidget(pDocument, pFormControl, false)) {
|
| if (pWidget->GetBorderStyle() != nBorderStyle) {
|
| pWidget->SetBorderStyle(nBorderStyle);
|
| UpdateFormControl(pDocument, pFormControl, TRUE, TRUE, TRUE);
|
| @@ -1208,7 +1211,7 @@ FX_BOOL Field::display(IJS_Context* cc,
|
| ASSERT(pFormField);
|
| CPDFSDK_InterForm* pInterForm = m_pDocument->GetInterForm();
|
| CPDFSDK_Widget* pWidget =
|
| - pInterForm->GetWidget(GetSmartFieldControl(pFormField));
|
| + pInterForm->GetWidget(GetSmartFieldControl(pFormField), true);
|
| if (!pWidget)
|
| return FALSE;
|
|
|
| @@ -1246,7 +1249,8 @@ void Field::SetDisplay(CPDFSDK_Document* pDocument,
|
| CPDF_FormControl* pFormControl = pFormField->GetControl(i);
|
| ASSERT(pFormControl);
|
|
|
| - if (CPDFSDK_Widget* pWidget = pInterForm->GetWidget(pFormControl)) {
|
| + if (CPDFSDK_Widget* pWidget =
|
| + pInterForm->GetWidget(pFormControl, true)) {
|
| uint32_t dwFlag = pWidget->GetFlags();
|
| switch (number) {
|
| case 0:
|
| @@ -1287,7 +1291,8 @@ void Field::SetDisplay(CPDFSDK_Document* pDocument,
|
| return;
|
| if (CPDF_FormControl* pFormControl =
|
| pFormField->GetControl(nControlIndex)) {
|
| - if (CPDFSDK_Widget* pWidget = pInterForm->GetWidget(pFormControl)) {
|
| + if (CPDFSDK_Widget* pWidget =
|
| + pInterForm->GetWidget(pFormControl, true)) {
|
| uint32_t dwFlag = pWidget->GetFlags();
|
| switch (number) {
|
| case 0:
|
| @@ -1525,7 +1530,7 @@ FX_BOOL Field::hidden(IJS_Context* cc,
|
| ASSERT(pFormField);
|
| CPDFSDK_InterForm* pInterForm = m_pDocument->GetInterForm();
|
| CPDFSDK_Widget* pWidget =
|
| - pInterForm->GetWidget(GetSmartFieldControl(pFormField));
|
| + pInterForm->GetWidget(GetSmartFieldControl(pFormField), false);
|
| if (!pWidget)
|
| return FALSE;
|
|
|
| @@ -1552,7 +1557,7 @@ void Field::SetHidden(CPDFSDK_Document* pDocument,
|
| FX_BOOL bSet = FALSE;
|
| for (int i = 0, sz = pFormField->CountControls(); i < sz; ++i) {
|
| if (CPDFSDK_Widget* pWidget =
|
| - pInterForm->GetWidget(pFormField->GetControl(i))) {
|
| + pInterForm->GetWidget(pFormField->GetControl(i), false)) {
|
| uint32_t dwFlags = pWidget->GetFlags();
|
|
|
| if (b) {
|
| @@ -1580,7 +1585,8 @@ void Field::SetHidden(CPDFSDK_Document* pDocument,
|
| return;
|
| if (CPDF_FormControl* pFormControl =
|
| pFormField->GetControl(nControlIndex)) {
|
| - if (CPDFSDK_Widget* pWidget = pInterForm->GetWidget(pFormControl)) {
|
| + if (CPDFSDK_Widget* pWidget =
|
| + pInterForm->GetWidget(pFormControl, false)) {
|
| uint32_t dwFlags = pWidget->GetFlags();
|
|
|
| if (b) {
|
| @@ -1696,7 +1702,8 @@ FX_BOOL Field::lineWidth(IJS_Context* cc,
|
| if (!pFormField->CountControls())
|
| return FALSE;
|
|
|
| - CPDFSDK_Widget* pWidget = pInterForm->GetWidget(pFormField->GetControl(0));
|
| + CPDFSDK_Widget* pWidget =
|
| + pInterForm->GetWidget(pFormField->GetControl(0), false);
|
| if (!pWidget)
|
| return FALSE;
|
|
|
| @@ -1720,7 +1727,8 @@ void Field::SetLineWidth(CPDFSDK_Document* pDocument,
|
| CPDF_FormControl* pFormControl = pFormField->GetControl(i);
|
| ASSERT(pFormControl);
|
|
|
| - if (CPDFSDK_Widget* pWidget = pInterForm->GetWidget(pFormControl)) {
|
| + if (CPDFSDK_Widget* pWidget =
|
| + pInterForm->GetWidget(pFormControl, false)) {
|
| if (number != pWidget->GetBorderWidth()) {
|
| pWidget->SetBorderWidth(number);
|
| bSet = TRUE;
|
| @@ -1734,7 +1742,8 @@ void Field::SetLineWidth(CPDFSDK_Document* pDocument,
|
| return;
|
| if (CPDF_FormControl* pFormControl =
|
| pFormField->GetControl(nControlIndex)) {
|
| - if (CPDFSDK_Widget* pWidget = pInterForm->GetWidget(pFormControl)) {
|
| + if (CPDFSDK_Widget* pWidget =
|
| + pInterForm->GetWidget(pFormControl, false)) {
|
| if (number != pWidget->GetBorderWidth()) {
|
| pWidget->SetBorderWidth(number);
|
| UpdateFormControl(pDocument, pFormControl, TRUE, TRUE, TRUE);
|
| @@ -1965,7 +1974,7 @@ FX_BOOL Field::print(IJS_Context* cc,
|
| FX_BOOL bSet = FALSE;
|
| for (int i = 0, sz = pFormField->CountControls(); i < sz; ++i) {
|
| if (CPDFSDK_Widget* pWidget =
|
| - pInterForm->GetWidget(pFormField->GetControl(i))) {
|
| + pInterForm->GetWidget(pFormField->GetControl(i), false)) {
|
| uint32_t dwFlags = pWidget->GetFlags();
|
| if (bVP)
|
| dwFlags |= ANNOTFLAG_PRINT;
|
| @@ -1986,7 +1995,8 @@ FX_BOOL Field::print(IJS_Context* cc,
|
| return FALSE;
|
| if (CPDF_FormControl* pFormControl =
|
| pFormField->GetControl(m_nFormControlIndex)) {
|
| - if (CPDFSDK_Widget* pWidget = pInterForm->GetWidget(pFormControl)) {
|
| + if (CPDFSDK_Widget* pWidget =
|
| + pInterForm->GetWidget(pFormControl, true)) {
|
| uint32_t dwFlags = pWidget->GetFlags();
|
| if (bVP)
|
| dwFlags |= ANNOTFLAG_PRINT;
|
| @@ -2006,7 +2016,7 @@ FX_BOOL Field::print(IJS_Context* cc,
|
| } else {
|
| CPDF_FormField* pFormField = FieldArray[0];
|
| CPDFSDK_Widget* pWidget =
|
| - pInterForm->GetWidget(GetSmartFieldControl(pFormField));
|
| + pInterForm->GetWidget(GetSmartFieldControl(pFormField), true);
|
| if (!pWidget)
|
| return FALSE;
|
|
|
| @@ -2118,7 +2128,7 @@ FX_BOOL Field::rect(IJS_Context* cc,
|
| CPDF_FormField* pFormField = FieldArray[0];
|
| CPDFSDK_InterForm* pInterForm = m_pDocument->GetInterForm();
|
| CPDFSDK_Widget* pWidget =
|
| - pInterForm->GetWidget(GetSmartFieldControl(pFormField));
|
| + pInterForm->GetWidget(GetSmartFieldControl(pFormField), true);
|
| if (!pWidget)
|
| return FALSE;
|
|
|
| @@ -2152,7 +2162,8 @@ void Field::SetRect(CPDFSDK_Document* pDocument,
|
| CPDF_FormControl* pFormControl = pFormField->GetControl(i);
|
| ASSERT(pFormControl);
|
|
|
| - if (CPDFSDK_Widget* pWidget = pInterForm->GetWidget(pFormControl)) {
|
| + if (CPDFSDK_Widget* pWidget =
|
| + pInterForm->GetWidget(pFormControl, false)) {
|
| CFX_FloatRect crRect = rect;
|
|
|
| CPDF_Page* pPDFPage = pWidget->GetPDFPage();
|
| @@ -2176,7 +2187,8 @@ void Field::SetRect(CPDFSDK_Document* pDocument,
|
| return;
|
| if (CPDF_FormControl* pFormControl =
|
| pFormField->GetControl(nControlIndex)) {
|
| - if (CPDFSDK_Widget* pWidget = pInterForm->GetWidget(pFormControl)) {
|
| + if (CPDFSDK_Widget* pWidget =
|
| + pInterForm->GetWidget(pFormControl, false)) {
|
| CFX_FloatRect crRect = rect;
|
|
|
| CPDF_Page* pPDFPage = pWidget->GetPDFPage();
|
| @@ -3250,7 +3262,7 @@ FX_BOOL Field::setFocus(IJS_Context* cc,
|
| CPDFSDK_InterForm* pInterForm = m_pDocument->GetInterForm();
|
| CPDFSDK_Widget* pWidget = nullptr;
|
| if (nCount == 1) {
|
| - pWidget = pInterForm->GetWidget(pFormField->GetControl(0));
|
| + pWidget = pInterForm->GetWidget(pFormField->GetControl(0), false);
|
| } else {
|
| CPDFDoc_Environment* pEnv = m_pDocument->GetEnv();
|
| UnderlyingPageType* pPage = UnderlyingFromFPDFPage(
|
| @@ -3261,7 +3273,7 @@ FX_BOOL Field::setFocus(IJS_Context* cc,
|
| m_pDocument->GetPageView(pPage, true)) {
|
| for (int32_t i = 0; i < nCount; i++) {
|
| if (CPDFSDK_Widget* pTempWidget =
|
| - pInterForm->GetWidget(pFormField->GetControl(i))) {
|
| + pInterForm->GetWidget(pFormField->GetControl(i), false)) {
|
| if (pTempWidget->GetPDFPage() == pCurPageView->GetPDFPage()) {
|
| pWidget = pTempWidget;
|
| break;
|
|
|