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

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

Issue 2451183002: Add sticky nodes affected by inner and outer viewport bounds deltas. (Closed)
Patch Set: Add to nodes affected by inner/outer viewport only, improve test coverage. Created 4 years, 1 month 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
« no previous file with comments | « cc/trees/layer_tree_host_common_unittest.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 "cc/trees/property_tree_builder.h" 5 #include "cc/trees/property_tree_builder.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <map> 9 #include <map>
10 #include <set> 10 #include <set>
(...skipping 687 matching lines...) Expand 10 before | Expand all | Expand 10 after
698 698
699 if (StickyPositionConstraint(layer).is_sticky) { 699 if (StickyPositionConstraint(layer).is_sticky) {
700 StickyPositionNodeData* sticky_data = 700 StickyPositionNodeData* sticky_data =
701 data_for_children->property_trees->transform_tree.StickyPositionData( 701 data_for_children->property_trees->transform_tree.StickyPositionData(
702 node->id); 702 node->id);
703 sticky_data->constraints = StickyPositionConstraint(layer); 703 sticky_data->constraints = StickyPositionConstraint(layer);
704 sticky_data->scroll_ancestor = GetScrollParentId(data_from_ancestor, layer); 704 sticky_data->scroll_ancestor = GetScrollParentId(data_from_ancestor, layer);
705 ScrollNode* scroll_ancestor = 705 ScrollNode* scroll_ancestor =
706 data_for_children->property_trees->scroll_tree.Node( 706 data_for_children->property_trees->scroll_tree.Node(
707 sticky_data->scroll_ancestor); 707 sticky_data->scroll_ancestor);
708 if (scroll_ancestor->is_inner_viewport_scroll_layer) { 708 if (sticky_data->constraints.is_anchored_right ||
709 data_for_children->property_trees->transform_tree 709 sticky_data->constraints.is_anchored_bottom) {
710 .AddNodeAffectedByInnerViewportBoundsDelta(node->id); 710 if (scroll_ancestor->is_inner_viewport_scroll_layer) {
711 data_for_children->property_trees->transform_tree
712 .AddNodeAffectedByInnerViewportBoundsDelta(node->id);
ajuma 2016/10/28 17:10:41 As discussed, please rename TransformNode::affecte
flackr 2016/10/28 17:24:51 Done.
713 } else if (scroll_ancestor->is_outer_viewport_scroll_layer) {
714 data_for_children->property_trees->transform_tree
715 .AddNodeAffectedByOuterViewportBoundsDelta(node->id);
716 }
711 } 717 }
712 sticky_data->main_thread_offset = 718 sticky_data->main_thread_offset =
713 layer->position().OffsetFromOrigin() - 719 layer->position().OffsetFromOrigin() -
714 sticky_data->constraints.parent_relative_sticky_box_offset 720 sticky_data->constraints.parent_relative_sticky_box_offset
715 .OffsetFromOrigin(); 721 .OffsetFromOrigin();
716 } 722 }
717 723
718 node->needs_local_transform_update = true; 724 node->needs_local_transform_update = true;
719 data_from_ancestor.property_trees->transform_tree.UpdateTransforms(node->id); 725 data_from_ancestor.property_trees->transform_tree.UpdateTransforms(node->id);
720 726
(...skipping 765 matching lines...) Expand 10 before | Expand all | Expand 10 after
1486 color = SkColorSetA(color, 255); 1492 color = SkColorSetA(color, 255);
1487 BuildPropertyTreesTopLevelInternal( 1493 BuildPropertyTreesTopLevelInternal(
1488 root_layer, page_scale_layer, inner_viewport_scroll_layer, 1494 root_layer, page_scale_layer, inner_viewport_scroll_layer,
1489 outer_viewport_scroll_layer, overscroll_elasticity_layer, 1495 outer_viewport_scroll_layer, overscroll_elasticity_layer,
1490 elastic_overscroll, page_scale_factor, device_scale_factor, viewport, 1496 elastic_overscroll, page_scale_factor, device_scale_factor, viewport,
1491 device_transform, property_trees, color); 1497 device_transform, property_trees, color);
1492 property_trees->ResetCachedData(); 1498 property_trees->ResetCachedData();
1493 } 1499 }
1494 1500
1495 } // namespace cc 1501 } // namespace cc
OLDNEW
« no previous file with comments | « cc/trees/layer_tree_host_common_unittest.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698