| Index: xfa/fwl/core/cfwl_widgetmgr.cpp
|
| diff --git a/xfa/fwl/core/cfwl_widgetmgr.cpp b/xfa/fwl/core/cfwl_widgetmgr.cpp
|
| index fc9f150ac3e9af6969e02d81cea803c4be39f575..1649ee76b9e825ec7d2237b947404fa9d0ba3a92 100644
|
| --- a/xfa/fwl/core/cfwl_widgetmgr.cpp
|
| +++ b/xfa/fwl/core/cfwl_widgetmgr.cpp
|
| @@ -104,7 +104,7 @@ CFWL_Widget* CFWL_WidgetMgr::GetSystemFormWidget(CFWL_Widget* pWidget) const {
|
| return nullptr;
|
| }
|
|
|
| -void CFWL_WidgetMgr::SetWidgetIndex(CFWL_Widget* pWidget, int32_t nIndex) {
|
| +void CFWL_WidgetMgr::AppendWidget(CFWL_Widget* pWidget) {
|
| Item* pItem = GetWidgetMgrItem(pWidget);
|
| if (!pItem)
|
| return;
|
| @@ -115,8 +115,6 @@ void CFWL_WidgetMgr::SetWidgetIndex(CFWL_Widget* pWidget, int32_t nIndex) {
|
| int32_t i = 0;
|
| while (pChild) {
|
| if (pChild == pItem) {
|
| - if (i == nIndex)
|
| - return;
|
| if (pChild->pPrevious)
|
| pChild->pPrevious->pNext = pChild->pNext;
|
| if (pChild->pNext)
|
| @@ -137,40 +135,16 @@ void CFWL_WidgetMgr::SetWidgetIndex(CFWL_Widget* pWidget, int32_t nIndex) {
|
|
|
| pChild = pItem->pParent->pChild;
|
| if (pChild) {
|
| - if (nIndex < 0) {
|
| - while (pChild->pNext)
|
| - pChild = pChild->pNext;
|
| -
|
| - pChild->pNext = pItem;
|
| - pItem->pPrevious = pChild;
|
| - pItem->pNext = nullptr;
|
| - return;
|
| - }
|
| -
|
| - i = 0;
|
| - while (i < nIndex && pChild->pNext) {
|
| + while (pChild->pNext)
|
| pChild = pChild->pNext;
|
| - ++i;
|
| - }
|
| - if (!pChild->pNext) {
|
| - pChild->pNext = pItem;
|
| - pItem->pPrevious = pChild;
|
| - pItem->pNext = nullptr;
|
| - return;
|
| - }
|
| - if (pChild->pPrevious) {
|
| - pItem->pPrevious = pChild->pPrevious;
|
| - pChild->pPrevious->pNext = pItem;
|
| - }
|
| - pChild->pPrevious = pItem;
|
| - pItem->pNext = pChild;
|
| - if (pItem->pParent->pChild == pChild)
|
| - pItem->pParent->pChild = pItem;
|
| +
|
| + pChild->pNext = pItem;
|
| + pItem->pPrevious = pChild;
|
| } else {
|
| pItem->pParent->pChild = pItem;
|
| pItem->pPrevious = nullptr;
|
| - pItem->pNext = nullptr;
|
| }
|
| + pItem->pNext = nullptr;
|
| }
|
|
|
| void CFWL_WidgetMgr::RepaintWidget(CFWL_Widget* pWidget,
|
| @@ -201,9 +175,7 @@ void CFWL_WidgetMgr::RepaintWidget(CFWL_Widget* pWidget,
|
| m_pAdapter->RepaintWidget(pNative, &rect);
|
| }
|
|
|
| -void CFWL_WidgetMgr::InsertWidget(CFWL_Widget* pParent,
|
| - CFWL_Widget* pChild,
|
| - int32_t nIndex) {
|
| +void CFWL_WidgetMgr::InsertWidget(CFWL_Widget* pParent, CFWL_Widget* pChild) {
|
| Item* pParentItem = GetWidgetMgrItem(pParent);
|
| if (!pParentItem) {
|
| auto item = pdfium::MakeUnique<Item>(pParent);
|
| @@ -211,7 +183,7 @@ void CFWL_WidgetMgr::InsertWidget(CFWL_Widget* pParent,
|
| m_mapWidgetItem[pParent] = std::move(item);
|
|
|
| pParentItem->pParent = GetWidgetMgrItem(nullptr);
|
| - SetWidgetIndex(pParent, -1);
|
| + AppendWidget(pParent);
|
| }
|
|
|
| Item* pItem = GetWidgetMgrItem(pChild);
|
| @@ -229,7 +201,7 @@ void CFWL_WidgetMgr::InsertWidget(CFWL_Widget* pParent,
|
| pItem->pParent->pChild = pItem->pNext;
|
| }
|
| pItem->pParent = pParentItem;
|
| - SetWidgetIndex(pChild, nIndex);
|
| + AppendWidget(pChild);
|
| }
|
|
|
| void CFWL_WidgetMgr::RemoveWidget(CFWL_Widget* pWidget) {
|
| @@ -260,7 +232,7 @@ void CFWL_WidgetMgr::SetOwner(CFWL_Widget* pOwner, CFWL_Widget* pOwned) {
|
| m_mapWidgetItem[pOwner] = std::move(item);
|
|
|
| pParentItem->pParent = GetWidgetMgrItem(nullptr);
|
| - SetWidgetIndex(pOwner, -1);
|
| + AppendWidget(pOwner);
|
| }
|
|
|
| Item* pItem = GetWidgetMgrItem(pOwned);
|
| @@ -288,7 +260,7 @@ void CFWL_WidgetMgr::SetParent(CFWL_Widget* pParent, CFWL_Widget* pChild) {
|
| pItem->pPrevious = nullptr;
|
| }
|
| pItem->pParent = pParentItem;
|
| - SetWidgetIndex(pChild, -1);
|
| + AppendWidget(pChild);
|
| }
|
|
|
| void CFWL_WidgetMgr::SetWidgetRect_Native(CFWL_Widget* pWidget,
|
| @@ -327,7 +299,7 @@ CFWL_Widget* CFWL_WidgetMgr::GetWidgetAtPoint(CFWL_Widget* parent,
|
| x1 = x;
|
| y1 = y;
|
| CFX_Matrix matrixOnParent;
|
| - child->GetMatrix(matrixOnParent);
|
| + child->GetMatrix(matrixOnParent, false);
|
| CFX_Matrix m;
|
| m.SetIdentity();
|
| m.SetReverse(matrixOnParent);
|
|
|