diff options
Diffstat (limited to 'xfa/fxfa/parser')
-rw-r--r-- | xfa/fxfa/parser/cxfa_node.cpp | 15 | ||||
-rw-r--r-- | xfa/fxfa/parser/cxfa_node.h | 2 |
2 files changed, 8 insertions, 9 deletions
diff --git a/xfa/fxfa/parser/cxfa_node.cpp b/xfa/fxfa/parser/cxfa_node.cpp index 90103673cd..026e013dae 100644 --- a/xfa/fxfa/parser/cxfa_node.cpp +++ b/xfa/fxfa/parser/cxfa_node.cpp @@ -724,7 +724,7 @@ bool CXFA_Node::HasBindItem() { return GetPacketType() == XFA_PacketType::Datasets && GetBindingNode(); } -CXFA_WidgetAcc* CXFA_Node::GetContainerWidgetAcc() { +CXFA_Node* CXFA_Node::GetContainerNode() { if (GetPacketType() != XFA_PacketType::Form) return nullptr; XFA_Element eType = GetElementType(); @@ -744,7 +744,7 @@ CXFA_WidgetAcc* CXFA_Node::GetContainerWidgetAcc() { wsPicture = pFieldWidgetAcc->GetPictureContent(XFA_VALUEPICTURE_DataBind); } if (!wsPicture.IsEmpty()) - return pFieldWidgetAcc; + return this; CXFA_Node* pDataNode = GetBindData(); if (!pDataNode) @@ -763,7 +763,7 @@ CXFA_WidgetAcc* CXFA_Node::GetContainerWidgetAcc() { break; pFieldWidgetAcc = nullptr; } - return pFieldWidgetAcc; + return pFieldWidgetAcc ? pFieldWidgetAcc->GetNode() : nullptr; } CXFA_Node* pGrandNode = pParentNode ? pParentNode->GetParent() : nullptr; @@ -779,8 +779,7 @@ CXFA_WidgetAcc* CXFA_Node::GetContainerWidgetAcc() { } CXFA_Node* pParentOfValueNode = pValueNode ? pValueNode->GetParent() : nullptr; - return pParentOfValueNode ? pParentOfValueNode->GetContainerWidgetAcc() - : nullptr; + return pParentOfValueNode ? pParentOfValueNode->GetContainerNode() : nullptr; } IFX_Locale* CXFA_Node::GetLocale() { @@ -1695,9 +1694,9 @@ void CXFA_Node::SendAttributeChangeMessage(XFA_Attribute eAttribute, void CXFA_Node::SyncValue(const WideString& wsValue, bool bNotify) { WideString wsFormatValue = wsValue; - CXFA_WidgetAcc* pContainerWidgetAcc = GetContainerWidgetAcc(); - if (pContainerWidgetAcc) - wsFormatValue = pContainerWidgetAcc->GetFormatDataValue(wsValue); + CXFA_Node* pContainerNode = GetContainerNode(); + if (pContainerNode && pContainerNode->GetWidgetAcc()) + wsFormatValue = pContainerNode->GetWidgetAcc()->GetFormatDataValue(wsValue); JSObject()->SetContent(wsValue, wsFormatValue, bNotify, false, true); } diff --git a/xfa/fxfa/parser/cxfa_node.h b/xfa/fxfa/parser/cxfa_node.h index fa455ba21b..9cda17c527 100644 --- a/xfa/fxfa/parser/cxfa_node.h +++ b/xfa/fxfa/parser/cxfa_node.h @@ -194,7 +194,7 @@ class CXFA_Node : public CXFA_Object { int32_t AddBindItem(CXFA_Node* pFormNode); int32_t RemoveBindItem(CXFA_Node* pFormNode); bool HasBindItem(); - CXFA_WidgetAcc* GetContainerWidgetAcc(); + CXFA_Node* GetContainerNode(); IFX_Locale* GetLocale(); Optional<WideString> GetLocaleName(); XFA_AttributeEnum GetIntact(); |