Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(10)

Side by Side Diff: cc/trees/property_tree.cc

Issue 2183923002: Undo scroll snaps in to_parent when NeedsSourceToParentUpdate. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Remove code no longer in use Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include <stddef.h> 5 #include <stddef.h>
6 6
7 #include <set> 7 #include <set>
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/logging.h" 10 #include "base/logging.h"
(...skipping 319 matching lines...) Expand 10 before | Expand all | Expand 10 after
330 bool all_are_invertible = dest_to_source.GetInverse(&source_to_dest); 330 bool all_are_invertible = dest_to_source.GetInverse(&source_to_dest);
331 transform->PreconcatTransform(source_to_dest); 331 transform->PreconcatTransform(source_to_dest);
332 return all_are_invertible; 332 return all_are_invertible;
333 } 333 }
334 334
335 void TransformTree::UpdateLocalTransform(TransformNode* node) { 335 void TransformTree::UpdateLocalTransform(TransformNode* node) {
336 gfx::Transform transform = node->post_local; 336 gfx::Transform transform = node->post_local;
337 if (NeedsSourceToParentUpdate(node)) { 337 if (NeedsSourceToParentUpdate(node)) {
338 gfx::Transform to_parent; 338 gfx::Transform to_parent;
339 ComputeTranslation(node->source_node_id, node->parent_id, &to_parent); 339 ComputeTranslation(node->source_node_id, node->parent_id, &to_parent);
340 gfx::Vector2dF unsnapping;
341 TransformNode* current;
342 TransformNode* parent_node;
343 for (current = Node(node->source_node_id); current->id > node->parent_id;
344 current = parent(current)) {
345 unsnapping.Subtract(current->scroll_snap);
346 }
347 for (parent_node = Node(node->parent_id);
348 parent_node->id > node->source_node_id;
349 parent_node = parent(parent_node)) {
350 unsnapping.Add(parent_node->scroll_snap);
351 }
352 // If a node NeedsSourceToParentUpdate, the node is either a fixed position
353 // node or a scroll child.
354 // If the node has a fixed position, the parent of the node is an ancestor
355 // of source node, current->id should be equal to node->parent_id.
356 // Otherwise, the node's source node is always an ancestor of the node owned
357 // by the scroll parent, so parent_node->id should be equal to
358 // node->source_node_id.
359 DCHECK(current->id == node->parent_id ||
360 parent_node->id == node->source_node_id);
361 to_parent.Translate(unsnapping.x(), unsnapping.y());
340 node->source_to_parent = to_parent.To2dTranslation(); 362 node->source_to_parent = to_parent.To2dTranslation();
341 } 363 }
342 364
343 gfx::Vector2dF fixed_position_adjustment; 365 gfx::Vector2dF fixed_position_adjustment;
344 gfx::Vector2dF inner_viewport_bounds_delta = 366 gfx::Vector2dF inner_viewport_bounds_delta =
345 property_trees()->inner_viewport_container_bounds_delta(); 367 property_trees()->inner_viewport_container_bounds_delta();
346 gfx::Vector2dF outer_viewport_bounds_delta = 368 gfx::Vector2dF outer_viewport_bounds_delta =
347 property_trees()->outer_viewport_container_bounds_delta(); 369 property_trees()->outer_viewport_container_bounds_delta();
348 if (node->affected_by_inner_viewport_bounds_delta_x) 370 if (node->affected_by_inner_viewport_bounds_delta_x)
349 fixed_position_adjustment.set_x(inner_viewport_bounds_delta.x()); 371 fixed_position_adjustment.set_x(inner_viewport_bounds_delta.x());
(...skipping 1654 matching lines...) Expand 10 before | Expand all | Expand 10 after
2004 DCHECK(effect_node->has_render_surface || 2026 DCHECK(effect_node->has_render_surface ||
2005 effect_node->id == EffectTree::kRootNodeId); 2027 effect_node->id == EffectTree::kRootNodeId);
2006 target_transform_id = effect_node->transform_id; 2028 target_transform_id = effect_node->transform_id;
2007 } 2029 }
2008 2030
2009 return transform_tree.ComputeTransform(target_transform_id, transform_id, 2031 return transform_tree.ComputeTransform(target_transform_id, transform_id,
2010 transform); 2032 transform);
2011 } 2033 }
2012 2034
2013 } // namespace cc 2035 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698