| 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 Apple Inc. All rights reserved. | 3 * Copyright (C) 2004, 2005, 2006, 2007, 2008 Apple Inc. All rights reserved. |
| 4 * | 4 * |
| 5 * This library is free software; you can redistribute it and/or | 5 * This library is free software; you can redistribute it and/or |
| 6 * modify it under the terms of the GNU Library General Public | 6 * modify it under the terms of the GNU Library General Public |
| 7 * License as published by the Free Software Foundation; either | 7 * License as published by the Free Software Foundation; either |
| 8 * version 2 of the License, or (at your option) any later version. | 8 * version 2 of the License, or (at your option) any later version. |
| 9 * | 9 * |
| 10 * This library is distributed in the hope that it will be useful, | 10 * This library is distributed in the hope that it will be useful, |
| (...skipping 337 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 348 { | 348 { |
| 349 const FillLayer* curr; | 349 const FillLayer* curr; |
| 350 for (curr = this; curr; curr = curr->next()) { | 350 for (curr = this; curr; curr = curr->next()) { |
| 351 if (curr->m_image && !curr->m_image->isLoaded()) | 351 if (curr->m_image && !curr->m_image->isLoaded()) |
| 352 return false; | 352 return false; |
| 353 } | 353 } |
| 354 | 354 |
| 355 return true; | 355 return true; |
| 356 } | 356 } |
| 357 | 357 |
| 358 bool FillLayer::needsFullRepaintOnContainerWidthChange() const | |
| 359 { | |
| 360 if (m_image) { | |
| 361 if (m_repeatX != RepeatFill && m_repeatX != NoRepeatFill) | |
| 362 return true; | |
| 363 if (m_xPosition.isPercent() && !m_xPosition.isZero()) | |
| 364 return true; | |
| 365 if (m_backgroundXOrigin != LeftEdge) | |
| 366 return true; | |
| 367 if (m_sizeType != SizeLength && m_sizeType != SizeNone) | |
| 368 return true; | |
| 369 if (m_sizeType == SizeLength) { | |
| 370 if (m_sizeLength.width().isPercent() && !m_sizeLength.width().isZero
()) | |
| 371 return true; | |
| 372 if (m_sizeLength.width().isAuto() && m_sizeLength.height().isPercent
() && !m_sizeLength.height().isZero()) | |
| 373 return true; | |
| 374 } | |
| 375 } | |
| 376 | |
| 377 return m_next && m_next->needsFullRepaintOnContainerWidthChange(); | |
| 378 } | |
| 379 | |
| 380 bool FillLayer::needsFullRepaintOnContainerHeightChange() const | |
| 381 { | |
| 382 if (m_image) { | |
| 383 if (m_repeatY != RepeatFill && m_repeatY != NoRepeatFill) | |
| 384 return true; | |
| 385 if (m_yPosition.isPercent() && !m_yPosition.isZero()) | |
| 386 return true; | |
| 387 if (m_backgroundYOrigin != TopEdge) | |
| 388 return true; | |
| 389 if (m_sizeType != SizeLength && m_sizeType != SizeNone) | |
| 390 return true; | |
| 391 if (m_sizeType == SizeLength) { | |
| 392 if (m_sizeLength.height().isPercent() && !m_sizeLength.height().isZe
ro()) | |
| 393 return true; | |
| 394 if (m_sizeLength.height().isAuto() && m_sizeLength.width().isPercent
() && !m_sizeLength.width().isZero()) | |
| 395 return true; | |
| 396 } | |
| 397 } | |
| 398 | |
| 399 return m_next && m_next->needsFullRepaintOnContainerHeightChange(); | |
| 400 } | |
| 401 | |
| 402 bool FillLayer::hasOpaqueImage(const RenderObject* renderer) const | 358 bool FillLayer::hasOpaqueImage(const RenderObject* renderer) const |
| 403 { | 359 { |
| 404 if (!m_image) | 360 if (!m_image) |
| 405 return false; | 361 return false; |
| 406 | 362 |
| 407 if (m_composite == CompositeClear || m_composite == CompositeCopy) | 363 if (m_composite == CompositeClear || m_composite == CompositeCopy) |
| 408 return true; | 364 return true; |
| 409 | 365 |
| 410 if (m_blendMode != blink::WebBlendModeNormal) | 366 if (m_blendMode != blink::WebBlendModeNormal) |
| 411 return false; | 367 return false; |
| 412 | 368 |
| 413 if (m_composite == CompositeSourceOver) | 369 if (m_composite == CompositeSourceOver) |
| 414 return m_image->knownToBeOpaque(renderer); | 370 return m_image->knownToBeOpaque(renderer); |
| 415 | 371 |
| 416 return false; | 372 return false; |
| 417 } | 373 } |
| 418 | 374 |
| 419 bool FillLayer::hasRepeatXY() const | 375 bool FillLayer::hasRepeatXY() const |
| 420 { | 376 { |
| 421 return m_repeatX == RepeatFill && m_repeatY == RepeatFill; | 377 return m_repeatX == RepeatFill && m_repeatY == RepeatFill; |
| 422 } | 378 } |
| 423 | 379 |
| 424 } // namespace WebCore | 380 } // namespace WebCore |
| OLD | NEW |