| Index: xfa/fxfa/app/xfa_ffpageview.cpp
|
| diff --git a/xfa/fxfa/app/xfa_ffpageview.cpp b/xfa/fxfa/app/xfa_ffpageview.cpp
|
| index e5a05734dce04098d78d843d2726b84b1322126b..16461eb07c05da07514b7230134d445736bade71 100644
|
| --- a/xfa/fxfa/app/xfa_ffpageview.cpp
|
| +++ b/xfa/fxfa/app/xfa_ffpageview.cpp
|
| @@ -69,7 +69,30 @@ void GetPageMatrix(CFX_Matrix& pageMatrix,
|
| pageMatrix = m;
|
| }
|
|
|
| +bool PageWidgetFilter(CXFA_FFWidget* pWidget,
|
| + uint32_t dwFilter,
|
| + FX_BOOL bTraversal,
|
| + FX_BOOL bIgnorerelevant) {
|
| + CXFA_WidgetAcc* pWidgetAcc = pWidget->GetDataAcc();
|
| +
|
| + if (!!(dwFilter & XFA_WidgetStatus_Focused) &&
|
| + pWidgetAcc->GetClassID() != XFA_ELEMENT_Field) {
|
| + return false;
|
| + }
|
| +
|
| + uint32_t dwStatus = pWidget->GetStatus();
|
| + if (bTraversal && (dwStatus & XFA_WidgetStatus_Disabled))
|
| + return false;
|
| + if (bIgnorerelevant)
|
| + return !!(dwStatus & XFA_WidgetStatus_Visible);
|
| +
|
| + dwFilter &= (XFA_WidgetStatus_Visible | XFA_WidgetStatus_Viewable |
|
| + XFA_WidgetStatus_Printable);
|
| + return (dwFilter & dwStatus) == dwFilter;
|
| +}
|
| +
|
| } // namespace
|
| +
|
| CXFA_FFPageView::CXFA_FFPageView(CXFA_FFDocView* pDocView, CXFA_Node* pPageArea)
|
| : CXFA_ContainerLayoutItem(pPageArea), m_pDocView(pDocView) {}
|
|
|
| @@ -110,27 +133,6 @@ IXFA_WidgetIterator* CXFA_FFPageView::CreateWidgetIterator(
|
| return nullptr;
|
| }
|
|
|
| -static FX_BOOL XFA_PageWidgetFilter(CXFA_FFWidget* pWidget,
|
| - uint32_t dwFilter,
|
| - FX_BOOL bTraversal,
|
| - FX_BOOL bIgnorerelevant) {
|
| - CXFA_WidgetAcc* pWidgetAcc = pWidget->GetDataAcc();
|
| - uint32_t dwType = dwFilter & XFA_WIDGETFILTER_AllType;
|
| - if ((dwType == XFA_WIDGETFILTER_Field) &&
|
| - (pWidgetAcc->GetClassID() != XFA_ELEMENT_Field)) {
|
| - return FALSE;
|
| - }
|
| - uint32_t dwStatus = pWidget->GetStatus();
|
| - if (bTraversal && (dwStatus & XFA_WIDGETSTATUS_Disabled)) {
|
| - return FALSE;
|
| - }
|
| - if (bIgnorerelevant) {
|
| - return (dwStatus & XFA_WIDGETFILTER_Visible) != 0;
|
| - }
|
| - dwFilter &= (XFA_WIDGETFILTER_Visible | XFA_WIDGETFILTER_Viewable |
|
| - XFA_WIDGETFILTER_Printable);
|
| - return (dwFilter & dwStatus) == dwFilter;
|
| -}
|
| CXFA_FFPageWidgetIterator::CXFA_FFPageWidgetIterator(CXFA_FFPageView* pPageView,
|
| uint32_t dwFilter) {
|
| m_pPageView = pPageView;
|
| @@ -186,11 +188,11 @@ FX_BOOL CXFA_FFPageWidgetIterator::SetCurrentWidget(CXFA_FFWidget* hWidget) {
|
| CXFA_FFWidget* CXFA_FFPageWidgetIterator::GetWidget(
|
| CXFA_LayoutItem* pLayoutItem) {
|
| if (CXFA_FFWidget* pWidget = XFA_GetWidgetFromLayoutItem(pLayoutItem)) {
|
| - if (!XFA_PageWidgetFilter(pWidget, m_dwFilter, FALSE, m_bIgnorerelevant)) {
|
| + if (!PageWidgetFilter(pWidget, m_dwFilter, FALSE, m_bIgnorerelevant)) {
|
| return NULL;
|
| }
|
| if (!pWidget->IsLoaded() &&
|
| - (pWidget->GetStatus() & XFA_WIDGETSTATUS_Visible) != 0) {
|
| + (pWidget->GetStatus() & XFA_WidgetStatus_Visible) != 0) {
|
| pWidget->LoadWidget();
|
| }
|
| return pWidget;
|
| @@ -217,8 +219,8 @@ void CXFA_FFTabOrderPageWidgetIterator::Reset() {
|
| CXFA_FFWidget* CXFA_FFTabOrderPageWidgetIterator::MoveToFirst() {
|
| if (m_TabOrderWidgetArray.GetSize() > 0) {
|
| for (int32_t i = 0; i < m_TabOrderWidgetArray.GetSize(); i++) {
|
| - if (XFA_PageWidgetFilter(m_TabOrderWidgetArray[i], m_dwFilter, TRUE,
|
| - m_bIgnorerelevant)) {
|
| + if (PageWidgetFilter(m_TabOrderWidgetArray[i], m_dwFilter, TRUE,
|
| + m_bIgnorerelevant)) {
|
| m_iCurWidget = i;
|
| return m_TabOrderWidgetArray[m_iCurWidget];
|
| }
|
| @@ -229,8 +231,8 @@ CXFA_FFWidget* CXFA_FFTabOrderPageWidgetIterator::MoveToFirst() {
|
| CXFA_FFWidget* CXFA_FFTabOrderPageWidgetIterator::MoveToLast() {
|
| if (m_TabOrderWidgetArray.GetSize() > 0) {
|
| for (int32_t i = m_TabOrderWidgetArray.GetSize() - 1; i >= 0; i--) {
|
| - if (XFA_PageWidgetFilter(m_TabOrderWidgetArray[i], m_dwFilter, TRUE,
|
| - m_bIgnorerelevant)) {
|
| + if (PageWidgetFilter(m_TabOrderWidgetArray[i], m_dwFilter, TRUE,
|
| + m_bIgnorerelevant)) {
|
| m_iCurWidget = i;
|
| return m_TabOrderWidgetArray[m_iCurWidget];
|
| }
|
| @@ -240,8 +242,8 @@ CXFA_FFWidget* CXFA_FFTabOrderPageWidgetIterator::MoveToLast() {
|
| }
|
| CXFA_FFWidget* CXFA_FFTabOrderPageWidgetIterator::MoveToNext() {
|
| for (int32_t i = m_iCurWidget + 1; i < m_TabOrderWidgetArray.GetSize(); i++) {
|
| - if (XFA_PageWidgetFilter(m_TabOrderWidgetArray[i], m_dwFilter, TRUE,
|
| - m_bIgnorerelevant)) {
|
| + if (PageWidgetFilter(m_TabOrderWidgetArray[i], m_dwFilter, TRUE,
|
| + m_bIgnorerelevant)) {
|
| m_iCurWidget = i;
|
| return m_TabOrderWidgetArray[m_iCurWidget];
|
| }
|
| @@ -251,8 +253,8 @@ CXFA_FFWidget* CXFA_FFTabOrderPageWidgetIterator::MoveToNext() {
|
| }
|
| CXFA_FFWidget* CXFA_FFTabOrderPageWidgetIterator::MoveToPrevious() {
|
| for (int32_t i = m_iCurWidget - 1; i >= 0; i--) {
|
| - if (XFA_PageWidgetFilter(m_TabOrderWidgetArray[i], m_dwFilter, TRUE,
|
| - m_bIgnorerelevant)) {
|
| + if (PageWidgetFilter(m_TabOrderWidgetArray[i], m_dwFilter, TRUE,
|
| + m_bIgnorerelevant)) {
|
| m_iCurWidget = i;
|
| return m_TabOrderWidgetArray[m_iCurWidget];
|
| }
|
| @@ -427,7 +429,7 @@ CXFA_FFWidget* CXFA_FFTabOrderPageWidgetIterator::GetWidget(
|
| CXFA_LayoutItem* pLayoutItem) {
|
| if (CXFA_FFWidget* pWidget = XFA_GetWidgetFromLayoutItem(pLayoutItem)) {
|
| if (!pWidget->IsLoaded() &&
|
| - (pWidget->GetStatus() & XFA_WIDGETSTATUS_Visible)) {
|
| + (pWidget->GetStatus() & XFA_WidgetStatus_Visible)) {
|
| pWidget->LoadWidget();
|
| }
|
| return pWidget;
|
|
|