| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 1999 Antti Koivisto (koivisto@kde.org) | 2 * Copyright (C) 1999 Antti Koivisto (koivisto@kde.org) |
| 3 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010 Apple Inc. All rights | 3 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010 Apple Inc. All rights |
| 4 * reserved. | 4 * reserved. |
| 5 * Copyright (C) 2011 Adobe Systems Incorporated. All rights reserved. | 5 * Copyright (C) 2011 Adobe Systems Incorporated. All rights reserved. |
| 6 * | 6 * |
| 7 * This library is free software; you can redistribute it and/or | 7 * This library is free software; you can redistribute it and/or |
| 8 * modify it under the terms of the GNU Library General Public | 8 * modify it under the terms of the GNU Library General Public |
| 9 * License as published by the Free Software Foundation; either | 9 * License as published by the Free Software Foundation; either |
| 10 * version 2 of the License, or (at your option) any later version. | 10 * version 2 of the License, or (at your option) any later version. |
| (...skipping 183 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 194 bool independent_equal = old_style->IndependentInheritedEqual(*new_style); | 194 bool independent_equal = old_style->IndependentInheritedEqual(*new_style); |
| 195 bool non_independent_equal = | 195 bool non_independent_equal = |
| 196 old_style->NonIndependentInheritedEqual(*new_style); | 196 old_style->NonIndependentInheritedEqual(*new_style); |
| 197 if (!independent_equal || !non_independent_equal) { | 197 if (!independent_equal || !non_independent_equal) { |
| 198 if (non_independent_equal && !old_style->HasExplicitlyInheritedProperties()) | 198 if (non_independent_equal && !old_style->HasExplicitlyInheritedProperties()) |
| 199 return kIndependentInherit; | 199 return kIndependentInherit; |
| 200 return kInherit; | 200 return kInherit; |
| 201 } | 201 } |
| 202 | 202 |
| 203 if (!old_style->LoadingCustomFontsEqual(*new_style) || | 203 if (!old_style->LoadingCustomFontsEqual(*new_style) || |
| 204 old_style->AlignItems() != new_style->AlignItems() || | |
| 205 old_style->JustifyItems() != new_style->JustifyItems()) | 204 old_style->JustifyItems() != new_style->JustifyItems()) |
| 206 return kInherit; | 205 return kInherit; |
| 207 | 206 |
| 208 if (*old_style == *new_style) | 207 if (*old_style == *new_style) |
| 209 return DiffPseudoStyles(*old_style, *new_style); | 208 return DiffPseudoStyles(*old_style, *new_style); |
| 210 | 209 |
| 211 if (old_style->HasExplicitlyInheritedProperties()) | 210 if (old_style->HasExplicitlyInheritedProperties()) |
| 212 return kInherit; | 211 return kInherit; |
| 213 | 212 |
| 214 return kNoInherit; | 213 return kNoInherit; |
| 215 } | 214 } |
| 216 | 215 |
| 217 void ComputedStyle::PropagateIndependentInheritedProperties( | 216 void ComputedStyle::PropagateIndependentInheritedProperties( |
| 218 const ComputedStyle& parent_style) { | 217 const ComputedStyle& parent_style) { |
| 219 ComputedStyleBase::PropagateIndependentInheritedProperties(parent_style); | 218 ComputedStyleBase::PropagateIndependentInheritedProperties(parent_style); |
| 220 } | 219 } |
| 221 | 220 |
| 222 StyleSelfAlignmentData ResolvedSelfAlignment( | 221 StyleSelfAlignmentData ResolvedSelfAlignment( |
| 223 const StyleSelfAlignmentData& value, | 222 const StyleSelfAlignmentData& value, |
| 224 ItemPosition normal_value_behavior) { | 223 ItemPosition normal_value_behavior) { |
| 225 // To avoid needing to copy the RareNonInheritedData, we repurpose the 'auto' | |
| 226 // flag to not just mean 'auto' prior to running the StyleAdjuster but also | |
| 227 // mean 'normal' after running it. | |
| 228 if (value.GetPosition() == kItemPositionNormal || | 224 if (value.GetPosition() == kItemPositionNormal || |
| 229 value.GetPosition() == kItemPositionAuto) | 225 value.GetPosition() == kItemPositionAuto) |
| 230 return {normal_value_behavior, kOverflowAlignmentDefault}; | 226 return {normal_value_behavior, kOverflowAlignmentDefault}; |
| 231 return value; | 227 return value; |
| 232 } | 228 } |
| 233 | 229 |
| 234 StyleSelfAlignmentData ComputedStyle::ResolvedAlignItems( | 230 StyleSelfAlignmentData ComputedStyle::ResolvedAlignItems( |
| 235 ItemPosition normal_value_behaviour) const { | 231 ItemPosition normal_value_behaviour) const { |
| 236 // We will return the behaviour of 'normal' value if needed, which is specific | 232 // We will return the behaviour of 'normal' value if needed, which is specific |
| 237 // of each layout model. | 233 // of each layout model. |
| 238 return ResolvedSelfAlignment(AlignItems(), normal_value_behaviour); | 234 return ResolvedSelfAlignment(AlignItems(), normal_value_behaviour); |
| 239 } | 235 } |
| 240 | 236 |
| 241 StyleSelfAlignmentData ComputedStyle::ResolvedAlignSelf( | 237 StyleSelfAlignmentData ComputedStyle::ResolvedAlignSelf( |
| 242 ItemPosition normal_value_behaviour, | 238 ItemPosition normal_value_behaviour, |
| 243 const ComputedStyle* parent_style) const { | 239 const ComputedStyle* parent_style) const { |
| 244 // We will return the behaviour of 'normal' value if needed, which is specific | 240 // We will return the behaviour of 'normal' value if needed, which is specific |
| 245 // of each layout model. | 241 // of each layout model. |
| 246 if (!parent_style || AlignSelfPosition() != kItemPositionAuto) | 242 if (!parent_style || AlignSelfPosition() != kItemPositionAuto) |
| 247 return ResolvedSelfAlignment(AlignSelf(), normal_value_behaviour); | 243 return ResolvedSelfAlignment(AlignSelf(), normal_value_behaviour); |
| 248 | 244 |
| 249 // We shouldn't need to resolve any 'auto' value in post-adjusment | |
| 250 // ComputedStyle, but some layout models can generate anonymous boxes that may | |
| 251 // need 'auto' value resolution during layout. | |
| 252 // The 'auto' keyword computes to the parent's align-items computed value. | 245 // The 'auto' keyword computes to the parent's align-items computed value. |
| 253 return parent_style->ResolvedAlignItems(normal_value_behaviour); | 246 return parent_style->ResolvedAlignItems(normal_value_behaviour); |
| 254 } | 247 } |
| 255 | 248 |
| 256 StyleSelfAlignmentData ComputedStyle::ResolvedJustifyItems( | 249 StyleSelfAlignmentData ComputedStyle::ResolvedJustifyItems( |
| 257 ItemPosition normal_value_behaviour) const { | 250 ItemPosition normal_value_behaviour) const { |
| 258 // We will return the behaviour of 'normal' value if needed, which is specific | 251 // We will return the behaviour of 'normal' value if needed, which is specific |
| 259 // of each layout model. | 252 // of each layout model. |
| 260 return ResolvedSelfAlignment(JustifyItems(), normal_value_behaviour); | 253 return ResolvedSelfAlignment(JustifyItems(), normal_value_behaviour); |
| 261 } | 254 } |
| 262 | 255 |
| 263 StyleSelfAlignmentData ComputedStyle::ResolvedJustifySelf( | 256 StyleSelfAlignmentData ComputedStyle::ResolvedJustifySelf( |
| 264 ItemPosition normal_value_behaviour, | 257 ItemPosition normal_value_behaviour, |
| 265 const ComputedStyle* parent_style) const { | 258 const ComputedStyle* parent_style) const { |
| 266 // We will return the behaviour of 'normal' value if needed, which is specific | 259 // We will return the behaviour of 'normal' value if needed, which is specific |
| 267 // of each layout model. | 260 // of each layout model. |
| 268 if (!parent_style || JustifySelfPosition() != kItemPositionAuto) | 261 if (!parent_style || JustifySelfPosition() != kItemPositionAuto) |
| 269 return ResolvedSelfAlignment(JustifySelf(), normal_value_behaviour); | 262 return ResolvedSelfAlignment(JustifySelf(), normal_value_behaviour); |
| 270 | 263 |
| 271 // We shouldn't need to resolve any 'auto' value in post-adjusment | |
| 272 // ComputedStyle, but some layout models can generate anonymous boxes that may | |
| 273 // need 'auto' value resolution during layout. | |
| 274 // The auto keyword computes to the parent's justify-items computed value. | 264 // The auto keyword computes to the parent's justify-items computed value. |
| 275 return parent_style->ResolvedJustifyItems(normal_value_behaviour); | 265 return parent_style->ResolvedJustifyItems(normal_value_behaviour); |
| 276 } | 266 } |
| 277 | 267 |
| 278 static inline ContentPosition ResolvedContentAlignmentPosition( | 268 static inline ContentPosition ResolvedContentAlignmentPosition( |
| 279 const StyleContentAlignmentData& value, | 269 const StyleContentAlignmentData& value, |
| 280 const StyleContentAlignmentData& normal_value_behavior) { | 270 const StyleContentAlignmentData& normal_value_behavior) { |
| 281 return (value.GetPosition() == kContentPositionNormal && | 271 return (value.GetPosition() == kContentPositionNormal && |
| 282 value.Distribution() == kContentDistributionDefault) | 272 value.Distribution() == kContentDistributionDefault) |
| 283 ? normal_value_behavior.GetPosition() | 273 ? normal_value_behavior.GetPosition() |
| (...skipping 2196 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2480 if (value < 0) | 2470 if (value < 0) |
| 2481 fvalue -= 0.5f; | 2471 fvalue -= 0.5f; |
| 2482 else | 2472 else |
| 2483 fvalue += 0.5f; | 2473 fvalue += 0.5f; |
| 2484 } | 2474 } |
| 2485 | 2475 |
| 2486 return RoundForImpreciseConversion<int>(fvalue / zoom_factor); | 2476 return RoundForImpreciseConversion<int>(fvalue / zoom_factor); |
| 2487 } | 2477 } |
| 2488 | 2478 |
| 2489 } // namespace blink | 2479 } // namespace blink |
| OLD | NEW |