| Index: xfa/src/fxfa/src/app/xfa_ffnotify.cpp
|
| diff --git a/xfa/src/fxfa/src/app/xfa_ffnotify.cpp b/xfa/src/fxfa/src/app/xfa_ffnotify.cpp
|
| index 9dd93f387a90343551b35f07ce7fa8fe9505aa2a..ebd9d06a6e6010b184169bf0b3276c02ced607f1 100644
|
| --- a/xfa/src/fxfa/src/app/xfa_ffnotify.cpp
|
| +++ b/xfa/src/fxfa/src/app/xfa_ffnotify.cpp
|
| @@ -551,7 +551,7 @@ void CXFA_FFNotify::OnChildAdded(CXFA_Node* pSender,
|
| }
|
| FX_BOOL bLayoutReady =
|
| !(pDocView->m_bInLayoutStatus) &&
|
| - (pDocView->GetLayoutStatus() >= XFA_DOCVIEW_LAYOUTSTATUS_End);
|
| + (pDocView->GetLayoutStatus() == XFA_DOCVIEW_LAYOUTSTATUS_End);
|
| if (bLayoutReady) {
|
| m_pDoc->GetDocProvider()->SetChangeMark(m_pDoc);
|
| }
|
| @@ -562,7 +562,7 @@ void CXFA_FFNotify::OnChildRemoved(CXFA_Node* pSender,
|
| if (CXFA_FFDocView* pDocView = m_pDoc->GetDocView()) {
|
| FX_BOOL bLayoutReady =
|
| !(pDocView->m_bInLayoutStatus) &&
|
| - (pDocView->GetLayoutStatus() >= XFA_DOCVIEW_LAYOUTSTATUS_End);
|
| + (pDocView->GetLayoutStatus() == XFA_DOCVIEW_LAYOUTSTATUS_End);
|
| if (bLayoutReady) {
|
| m_pDoc->GetDocProvider()->SetChangeMark(m_pDoc);
|
| }
|
| @@ -580,33 +580,28 @@ void CXFA_FFNotify::OnLayoutItemAdd(CXFA_FFDocView* pDocView,
|
| FX_DWORD dwFilter = XFA_WIDGETSTATUS_Visible | XFA_WIDGETSTATUS_Viewable |
|
| XFA_WIDGETSTATUS_Printable;
|
| pWidget->ModifyStatus(dwStatus, dwFilter);
|
| - if (pDocView->GetLayoutStatus() >= XFA_DOCVIEW_LAYOUTSTATUS_End) {
|
| - IXFA_PageView* pPrePageView = pWidget->GetPageView();
|
| - if (pPrePageView != pNewPageView ||
|
| - (dwStatus & (XFA_WIDGETSTATUS_Visible | XFA_WIDGETSTATUS_Viewable)) ==
|
| - (XFA_WIDGETSTATUS_Visible | XFA_WIDGETSTATUS_Viewable)) {
|
| - pWidget->SetPageView(pNewPageView);
|
| - m_pDoc->GetDocProvider()->WidgetEvent(pWidget, pWidget->GetDataAcc(),
|
| - XFA_WIDGETEVENT_PostAdded,
|
| - pNewPageView, pPrePageView);
|
| - }
|
| - if ((dwStatus & XFA_WIDGETSTATUS_Visible) == 0) {
|
| - return;
|
| - }
|
| - if (pWidget->IsLoaded()) {
|
| - CFX_RectF rtOld;
|
| - pWidget->GetWidgetRect(rtOld);
|
| - CFX_RectF rtNew = pWidget->ReCacheWidgetRect();
|
| - if (rtOld != rtNew) {
|
| - pWidget->PerformLayout();
|
| - }
|
| - } else {
|
| - pWidget->LoadWidget();
|
| - }
|
| - pWidget->AddInvalidateRect(NULL);
|
| - } else {
|
| + IXFA_PageView* pPrePageView = pWidget->GetPageView();
|
| + if (pPrePageView != pNewPageView ||
|
| + (dwStatus & (XFA_WIDGETSTATUS_Visible | XFA_WIDGETSTATUS_Viewable)) ==
|
| + (XFA_WIDGETSTATUS_Visible | XFA_WIDGETSTATUS_Viewable)) {
|
| pWidget->SetPageView(pNewPageView);
|
| + m_pDoc->GetDocProvider()->WidgetEvent(pWidget, pWidget->GetDataAcc(),
|
| + XFA_WIDGETEVENT_PostAdded,
|
| + pNewPageView, pPrePageView);
|
| }
|
| + if (pDocView->GetLayoutStatus() != XFA_DOCVIEW_LAYOUTSTATUS_End ||
|
| + !(dwStatus & XFA_WIDGETSTATUS_Visible)) {
|
| + return;
|
| + }
|
| + if (pWidget->IsLoaded()) {
|
| + CFX_RectF rtOld;
|
| + pWidget->GetWidgetRect(rtOld);
|
| + if (rtOld != pWidget->ReCacheWidgetRect())
|
| + pWidget->PerformLayout();
|
| + } else {
|
| + pWidget->LoadWidget();
|
| + }
|
| + pWidget->AddInvalidateRect(nullptr);
|
| }
|
| void CXFA_FFNotify::OnLayoutItemRemoving(CXFA_FFDocView* pDocView,
|
| IXFA_DocLayout* pLayout,
|
| @@ -615,8 +610,6 @@ void CXFA_FFNotify::OnLayoutItemRemoving(CXFA_FFDocView* pDocView,
|
| void* pParam2) {
|
| CXFA_FFWidget* pWidget = static_cast<CXFA_FFWidget*>(pSender);
|
| pDocView->DeleteLayoutItem(pWidget);
|
| - if (pDocView->GetLayoutStatus() < XFA_DOCVIEW_LAYOUTSTATUS_End)
|
| - return;
|
| m_pDoc->GetDocProvider()->WidgetEvent(pWidget, pWidget->GetDataAcc(),
|
| XFA_WIDGETEVENT_PreRemoved, nullptr,
|
| pWidget->GetPageView());
|
|
|