| Index: ui/views/view.cc
|
| diff --git a/ui/views/view.cc b/ui/views/view.cc
|
| index acc04d30098143a4b7c728eb4ca09f889c8f4629..fdf8c122c4b15f1c3490196a480011c332b80437 100644
|
| --- a/ui/views/view.cc
|
| +++ b/ui/views/view.cc
|
| @@ -2,9 +2,12 @@
|
| // Use of this source code is governed by a BSD-style license that can be
|
| // found in the LICENSE file.
|
|
|
| +#define _USE_MATH_DEFINES // For VC++ to get M_PI. This has to be first.
|
| +
|
| #include "ui/views/view.h"
|
|
|
| #include <algorithm>
|
| +#include <cmath>
|
|
|
| #include "base/debug/trace_event.h"
|
| #include "base/logging.h"
|
| @@ -332,8 +335,10 @@ gfx::Rect View::GetVisibleBounds() const {
|
|
|
| while (view != NULL && !vis_bounds.IsEmpty()) {
|
| transform.ConcatTransform(view->GetTransform());
|
| - transform.ConcatTranslate(static_cast<float>(view->GetMirroredX()),
|
| - static_cast<float>(view->y()));
|
| + gfx::Transform translation;
|
| + translation.Translate(static_cast<float>(view->GetMirroredX()),
|
| + static_cast<float>(view->y()));
|
| + transform.ConcatTransform(translation);
|
|
|
| vis_bounds = view->ConvertRectToParent(vis_bounds);
|
| const View* ancestor = view->parent_;
|
| @@ -1432,39 +1437,28 @@ std::string View::DoPrintViewGraph(bool first, View* view_with_children) {
|
| bounds().height());
|
| result.append(bounds_buffer);
|
|
|
| - if (!GetTransform().IsIdentity()) {
|
| - gfx::Point translation;
|
| - float rotation;
|
| - gfx::Point3F scale;
|
| - if (ui::InterpolatedTransform::FactorTRS(GetTransform(),
|
| - &translation,
|
| - &rotation,
|
| - &scale)) {
|
| - if (!translation.IsOrigin()) {
|
| - base::snprintf(bounds_buffer,
|
| - arraysize(bounds_buffer),
|
| - "\\n translation: (%d, %d)",
|
| - translation.x(),
|
| - translation.y());
|
| - result.append(bounds_buffer);
|
| - }
|
| -
|
| - if (fabs(rotation) > 1e-5) {
|
| - base::snprintf(bounds_buffer,
|
| - arraysize(bounds_buffer),
|
| - "\\n rotation: %3.2f", rotation);
|
| - result.append(bounds_buffer);
|
| - }
|
| -
|
| - if (!gfx::ToFlooredPoint(scale.AsPointF()).IsOrigin()) {
|
| - base::snprintf(bounds_buffer,
|
| - arraysize(bounds_buffer),
|
| - "\\n scale: (%2.4f, %2.4f)",
|
| - scale.x(),
|
| - scale.y());
|
| - result.append(bounds_buffer);
|
| - }
|
| - }
|
| + gfx::DecomposedTransform decomp;
|
| + if (!GetTransform().IsIdentity() &&
|
| + gfx::DecomposeTransform(&decomp, GetTransform())) {
|
| + base::snprintf(bounds_buffer,
|
| + arraysize(bounds_buffer),
|
| + "\\n translation: (%f, %f)",
|
| + decomp.translate[0],
|
| + decomp.translate[1]);
|
| + result.append(bounds_buffer);
|
| +
|
| + base::snprintf(bounds_buffer,
|
| + arraysize(bounds_buffer),
|
| + "\\n rotation: %3.2f",
|
| + std::acos(decomp.quaternion[3]) * 360.0 / M_PI);
|
| + result.append(bounds_buffer);
|
| +
|
| + base::snprintf(bounds_buffer,
|
| + arraysize(bounds_buffer),
|
| + "\\n scale: (%2.4f, %2.4f)",
|
| + decomp.scale[0],
|
| + decomp.scale[1]);
|
| + result.append(bounds_buffer);
|
| }
|
|
|
| result.append("\"");
|
| @@ -1798,8 +1792,10 @@ bool View::GetTransformRelativeTo(const View* ancestor,
|
|
|
| while (p && p != ancestor) {
|
| transform->ConcatTransform(p->GetTransform());
|
| - transform->ConcatTranslate(static_cast<float>(p->GetMirroredX()),
|
| - static_cast<float>(p->y()));
|
| + gfx::Transform translation;
|
| + translation.Translate(static_cast<float>(p->GetMirroredX()),
|
| + static_cast<float>(p->y()));
|
| + transform->ConcatTransform(translation);
|
|
|
| p = p->parent_;
|
| }
|
|
|