Chromium Code Reviews| Index: xfa/fwl/cfwl_widget.cpp |
| diff --git a/xfa/fwl/cfwl_widget.cpp b/xfa/fwl/cfwl_widget.cpp |
| index 762ab831578225932eae39021a25a50945fbc123..8e27516dbba63621628ab9973851b96278a8abaa 100644 |
| --- a/xfa/fwl/cfwl_widget.cpp |
| +++ b/xfa/fwl/cfwl_widget.cpp |
| @@ -195,7 +195,7 @@ void CFWL_Widget::TransformTo(CFWL_Widget* pWidget, |
| r = GetWidgetRect(); |
| fx += r.left; |
| fy += r.top; |
| - GetMatrix(m, true); |
| + m = GetMatrix(); |
| m.TransformPoint(fx, fy); |
| } |
| CFWL_Widget* form1 = m_pWidgetMgr->GetSystemFormWidget(this); |
| @@ -221,10 +221,8 @@ void CFWL_Widget::TransformTo(CFWL_Widget* pWidget, |
| } |
| parent = pWidget->GetParent(); |
| if (parent) { |
| - pWidget->GetMatrix(m, true); |
| CFX_Matrix m1; |
| - m1.SetIdentity(); |
| - m1.SetReverse(m); |
| + m1.SetReverse(pWidget->GetMatrix()); |
| m1.TransformPoint(fx, fy); |
| r = pWidget->GetWidgetRect(); |
| fx -= r.left; |
| @@ -232,13 +230,9 @@ void CFWL_Widget::TransformTo(CFWL_Widget* pWidget, |
| } |
| } |
| -void CFWL_Widget::GetMatrix(CFX_Matrix& matrix, bool bGlobal) { |
| +CFX_Matrix CFWL_Widget::GetMatrix() { |
| if (!m_pProperties) |
| - return; |
| - if (!bGlobal) { |
|
Tom Sepez
2016/12/08 19:23:07
really? really? sigh.
|
| - matrix.SetIdentity(); |
| - return; |
| - } |
| + return CFX_Matrix(); |
| CFWL_Widget* parent = GetParent(); |
| CFX_ArrayTemplate<CFWL_Widget*> parents; |
| @@ -246,13 +240,16 @@ void CFWL_Widget::GetMatrix(CFX_Matrix& matrix, bool bGlobal) { |
| parents.Add(parent); |
| parent = parent->GetParent(); |
| } |
| - matrix.SetIdentity(); |
| + |
| + CFX_Matrix matrix; |
| CFX_Matrix ctmOnParent; |
| CFX_RectF rect; |
| int32_t count = parents.GetSize(); |
| for (int32_t i = count - 2; i >= 0; i--) { |
| parent = parents.GetAt(i); |
| - parent->GetMatrix(ctmOnParent, false); |
| + |
| + if (parent->m_pProperties) |
| + ctmOnParent.SetIdentity(); |
| rect = parent->GetWidgetRect(); |
| matrix.Concat(ctmOnParent, true); |
| matrix.Translate(rect.left, rect.top, true); |
| @@ -261,6 +258,8 @@ void CFWL_Widget::GetMatrix(CFX_Matrix& matrix, bool bGlobal) { |
| m.SetIdentity(); |
| matrix.Concat(m, true); |
| parents.RemoveAll(); |
| + |
| + return matrix; |
| } |
| IFWL_ThemeProvider* CFWL_Widget::GetThemeProvider() const { |