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

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

Issue 2194833002: Overscroll and Elasticity for views::ScrollView Base URL: https://chromium.googlesource.com/chromium/src.git@20160728-MacViews-RouteThroughInputHandler
Patch Set: Restore functionality and fix bugs \o/ 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/property_tree.cc ('k') | cc/trees/property_tree_unittest.cc » ('j') | 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 645 matching lines...) Expand 10 before | Expand all | Expand 10 after
656 *data_from_ancestor.device_transform, 656 *data_from_ancestor.device_transform,
657 layer->position()); 657 layer->position());
658 } else { 658 } else {
659 node->source_offset = source_offset; 659 node->source_offset = source_offset;
660 node->update_post_local_transform(layer->position(), 660 node->update_post_local_transform(layer->position(),
661 TransformOrigin(layer)); 661 TransformOrigin(layer));
662 } 662 }
663 663
664 if (is_overscroll_elasticity_layer) { 664 if (is_overscroll_elasticity_layer) {
665 DCHECK(!is_scrollable); 665 DCHECK(!is_scrollable);
666 node->scroll_offset = 666 node->scroll_offset_with_overscroll =
667 gfx::ScrollOffset(data_from_ancestor.elastic_overscroll); 667 gfx::ScrollOffset(data_from_ancestor.elastic_overscroll);
668 } else if (!ScrollParent(layer)) { 668 } else if (!ScrollParent(layer)) {
669 node->scroll_offset = layer->CurrentScrollOffset(); 669 node->scroll_offset_with_overscroll =
670 layer->CurrentScrollOffset() + layer->CurrentOverscroll();
670 } 671 }
671 672
672 if (is_fixed) { 673 if (is_fixed) {
673 if (data_from_ancestor.affected_by_inner_viewport_bounds_delta) { 674 if (data_from_ancestor.affected_by_inner_viewport_bounds_delta) {
674 node->affected_by_inner_viewport_bounds_delta_x = 675 node->affected_by_inner_viewport_bounds_delta_x =
675 PositionConstraint(layer).is_fixed_to_right_edge(); 676 PositionConstraint(layer).is_fixed_to_right_edge();
676 node->affected_by_inner_viewport_bounds_delta_y = 677 node->affected_by_inner_viewport_bounds_delta_y =
677 PositionConstraint(layer).is_fixed_to_bottom_edge(); 678 PositionConstraint(layer).is_fixed_to_bottom_edge();
678 if (node->affected_by_inner_viewport_bounds_delta_x || 679 if (node->affected_by_inner_viewport_bounds_delta_x ||
679 node->affected_by_inner_viewport_bounds_delta_y) { 680 node->affected_by_inner_viewport_bounds_delta_y) {
(...skipping 465 matching lines...) Expand 10 before | Expand all | Expand 10 after
1145 data_for_children->property_trees->scroll_tree.Insert(node, parent_id); 1146 data_for_children->property_trees->scroll_tree.Insert(node, parent_id);
1146 data_for_children->main_thread_scrolling_reasons = 1147 data_for_children->main_thread_scrolling_reasons =
1147 node.main_thread_scrolling_reasons; 1148 node.main_thread_scrolling_reasons;
1148 data_for_children->scroll_tree_parent_created_by_uninheritable_criteria = 1149 data_for_children->scroll_tree_parent_created_by_uninheritable_criteria =
1149 scroll_node_uninheritable_criteria; 1150 scroll_node_uninheritable_criteria;
1150 data_for_children->property_trees->scroll_id_to_index_map[layer->id()] = 1151 data_for_children->property_trees->scroll_id_to_index_map[layer->id()] =
1151 data_for_children->scroll_tree_parent; 1152 data_for_children->scroll_tree_parent;
1152 1153
1153 if (node.scrollable) { 1154 if (node.scrollable) {
1154 data_for_children->property_trees->scroll_tree.SetBaseScrollOffset( 1155 data_for_children->property_trees->scroll_tree.SetBaseScrollOffset(
1155 layer->id(), layer->CurrentScrollOffset()); 1156 layer->id(), layer->CurrentScrollOffset(),
1157 layer->CurrentOverscroll());
1156 } 1158 }
1157 } 1159 }
1158 1160
1159 layer->SetScrollTreeIndex(data_for_children->scroll_tree_parent); 1161 layer->SetScrollTreeIndex(data_for_children->scroll_tree_parent);
1160 } 1162 }
1161 1163
1162 template <typename LayerType> 1164 template <typename LayerType>
1163 void SetBackfaceVisibilityTransform(LayerType* layer, 1165 void SetBackfaceVisibilityTransform(LayerType* layer,
1164 bool created_transform_node) { 1166 bool created_transform_node) {
1165 const bool is_at_boundary_of_3d_rendering_context = 1167 const bool is_at_boundary_of_3d_rendering_context =
(...skipping 320 matching lines...) Expand 10 before | Expand all | Expand 10 after
1486 color = SkColorSetA(color, 255); 1488 color = SkColorSetA(color, 255);
1487 BuildPropertyTreesTopLevelInternal( 1489 BuildPropertyTreesTopLevelInternal(
1488 root_layer, page_scale_layer, inner_viewport_scroll_layer, 1490 root_layer, page_scale_layer, inner_viewport_scroll_layer,
1489 outer_viewport_scroll_layer, overscroll_elasticity_layer, 1491 outer_viewport_scroll_layer, overscroll_elasticity_layer,
1490 elastic_overscroll, page_scale_factor, device_scale_factor, viewport, 1492 elastic_overscroll, page_scale_factor, device_scale_factor, viewport,
1491 device_transform, property_trees, color); 1493 device_transform, property_trees, color);
1492 property_trees->ResetCachedData(); 1494 property_trees->ResetCachedData();
1493 } 1495 }
1494 1496
1495 } // namespace cc 1497 } // namespace cc
OLDNEW
« no previous file with comments | « cc/trees/property_tree.cc ('k') | cc/trees/property_tree_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698