From 4a1de7211af344f6acc784f4fe346ef8c8da7bd1 Mon Sep 17 00:00:00 2001 From: Dan Sinclair Date: Thu, 4 Jan 2018 13:40:07 -0500 Subject: Change CXFA_WidgetAcc::GetNextWidget to not require the FFDocView This CL changes GetNextWidget to assume that a valid parameter is passed to the method. For callers which passed nullptr, we change to get a vaild initial widget from the doc view directly. Change-Id: I50c06082831645f62339ade59d5026f546e07840 Reviewed-on: https://pdfium-review.googlesource.com/22254 Reviewed-by: Ryan Harrison Commit-Queue: dsinclair --- xfa/fxfa/cxfa_ffnotify.cpp | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) (limited to 'xfa/fxfa/cxfa_ffnotify.cpp') diff --git a/xfa/fxfa/cxfa_ffnotify.cpp b/xfa/fxfa/cxfa_ffnotify.cpp index 616edf7507..c7872f662b 100644 --- a/xfa/fxfa/cxfa_ffnotify.cpp +++ b/xfa/fxfa/cxfa_ffnotify.cpp @@ -70,8 +70,9 @@ void CXFA_FFNotify::OnWidgetListItemAdded(CXFA_WidgetAcc* pSender, if (pSender->GetUIType() != XFA_Element::ChoiceList) return; - CXFA_FFWidget* pWidget = nullptr; - while ((pWidget = pSender->GetNextWidget(pWidget)) != nullptr) { + CXFA_FFWidget* pWidget = + m_pDoc->GetDocView()->GetWidgetForNode(pSender->GetNode()); + for (; pWidget; pWidget = pSender->GetNextWidget(pWidget)) { if (pWidget->IsLoaded()) { if (pSender->IsListBox()) ToListBox(pWidget)->InsertItem(pLabel, iIndex); @@ -86,8 +87,9 @@ void CXFA_FFNotify::OnWidgetListItemRemoved(CXFA_WidgetAcc* pSender, if (pSender->GetUIType() != XFA_Element::ChoiceList) return; - CXFA_FFWidget* pWidget = nullptr; - while ((pWidget = pSender->GetNextWidget(pWidget)) != nullptr) { + CXFA_FFWidget* pWidget = + m_pDoc->GetDocView()->GetWidgetForNode(pSender->GetNode()); + for (; pWidget; pWidget = pSender->GetNextWidget(pWidget)) { if (pWidget->IsLoaded()) { if (pSender->IsListBox()) ToListBox(pWidget)->DeleteItem(iIndex); @@ -369,8 +371,9 @@ void CXFA_FFNotify::OnValueChanging(CXFA_Node* pSender, XFA_Attribute eAttr) { if (!pWidgetAcc) return; - CXFA_FFWidget* pWidget = nullptr; - while ((pWidget = pWidgetAcc->GetNextWidget(pWidget)) != nullptr) { + CXFA_FFWidget* pWidget = + m_pDoc->GetDocView()->GetWidgetForNode(pWidgetAcc->GetNode()); + for (; pWidget; pWidget = pWidgetAcc->GetNextWidget(pWidget)) { if (pWidget->IsLoaded()) pWidget->AddInvalidateRect(); } @@ -432,8 +435,9 @@ void CXFA_FFNotify::OnValueChanged(CXFA_Node* pSender, } } - CXFA_FFWidget* pWidget = nullptr; - while ((pWidget = pWidgetAcc->GetNextWidget(pWidget)) != nullptr) { + CXFA_FFWidget* pWidget = + m_pDoc->GetDocView()->GetWidgetForNode(pWidgetAcc->GetNode()); + for (; pWidget; pWidget = pWidgetAcc->GetNextWidget(pWidget)) { if (!pWidget->IsLoaded()) continue; -- cgit v1.2.3