OLD | NEW |
1 // Copyright 2010 The Chromium Authors. All rights reserved. | 1 // Copyright 2010 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/layers/layer.h" | 5 #include "cc/layers/layer.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 #include <stdint.h> | 8 #include <stdint.h> |
9 | 9 |
10 #include <algorithm> | 10 #include <algorithm> |
(...skipping 564 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
575 SetSubtreePropertyChanged(); | 575 SetSubtreePropertyChanged(); |
576 PropertyTrees* property_trees = layer_tree_host_->property_trees(); | 576 PropertyTrees* property_trees = layer_tree_host_->property_trees(); |
577 if (TransformNode* transform_node = | 577 if (TransformNode* transform_node = |
578 property_trees->transform_tree.FindNodeFromOwningLayerId(id())) { | 578 property_trees->transform_tree.FindNodeFromOwningLayerId(id())) { |
579 DCHECK_EQ(transform_tree_index(), transform_node->id); | 579 DCHECK_EQ(transform_tree_index(), transform_node->id); |
580 transform_node->update_post_local_transform(position, transform_origin()); | 580 transform_node->update_post_local_transform(position, transform_origin()); |
581 if (transform_node->sticky_position_constraint_id >= 0) { | 581 if (transform_node->sticky_position_constraint_id >= 0) { |
582 StickyPositionNodeData* sticky_data = | 582 StickyPositionNodeData* sticky_data = |
583 property_trees->transform_tree.StickyPositionData( | 583 property_trees->transform_tree.StickyPositionData( |
584 transform_tree_index()); | 584 transform_tree_index()); |
| 585 // TODO(smcgruer): Pass main thread sticky-shifting offsets of |
| 586 // non-promoted ancestors, or promote all ancestor sticky elements. |
| 587 // See http://crbug.com/702229 |
585 sticky_data->main_thread_offset = | 588 sticky_data->main_thread_offset = |
586 position.OffsetFromOrigin() - | 589 position.OffsetFromOrigin() - |
587 sticky_data->constraints.parent_relative_sticky_box_offset | 590 sticky_data->constraints.parent_relative_sticky_box_offset |
588 .OffsetFromOrigin(); | 591 .OffsetFromOrigin(); |
589 } | 592 } |
590 transform_node->needs_local_transform_update = true; | 593 transform_node->needs_local_transform_update = true; |
591 transform_node->transform_changed = true; | 594 transform_node->transform_changed = true; |
592 layer_tree_host_->property_trees()->transform_tree.set_needs_update(true); | 595 layer_tree_host_->property_trees()->transform_tree.set_needs_update(true); |
593 SetNeedsCommitNoRebuild(); | 596 SetNeedsCommitNoRebuild(); |
594 return; | 597 return; |
(...skipping 884 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1479 ->num_copy_requests_in_subtree; | 1482 ->num_copy_requests_in_subtree; |
1480 } | 1483 } |
1481 | 1484 |
1482 gfx::Transform Layer::screen_space_transform() const { | 1485 gfx::Transform Layer::screen_space_transform() const { |
1483 DCHECK_NE(transform_tree_index_, TransformTree::kInvalidNodeId); | 1486 DCHECK_NE(transform_tree_index_, TransformTree::kInvalidNodeId); |
1484 return draw_property_utils::ScreenSpaceTransform( | 1487 return draw_property_utils::ScreenSpaceTransform( |
1485 this, layer_tree_host_->property_trees()->transform_tree); | 1488 this, layer_tree_host_->property_trees()->transform_tree); |
1486 } | 1489 } |
1487 | 1490 |
1488 } // namespace cc | 1491 } // namespace cc |
OLD | NEW |