1589 m_hasReflection = false; |
1589 m_hasReflection = false; |
1590 } else |
1590 } else |
1591 s_affectsParentBlock = false; |
1591 s_affectsParentBlock = false; |
1592 |
1592 |
1593 if (view()->frameView()) { |
1593 if (view()->frameView()) { |
1594 // FIXME: A better solution would be to only invalidate the fixed regions when scrolling. It's overkill to |
1594 bool shouldBlitOnFixedBackgroundImage = false; |
1595 // prevent the entire view from blitting on a scroll. |
1595 #if ENABLE(FAST_MOBILE_SCROLLING) |
1596 bool newStyleSlowScroll = newStyle && (newStyle->position() == FixedPosition || newStyle->hasFixedBackgroundImage()); |
1596 // On low-powered/mobile devices, preventing blitting on a scroll can cause noticeable delays |
1597 bool oldStyleSlowScroll = m_style && (m_style->position() == FixedPosition || m_style->hasFixedBackgroundImage()); |
1597 // when scrolling a page with a fixed background image. As an optimization, assuming there are |
|
1598 // no fixed positoned elements on the page, we can acclerate scrolling (via blitting) if we |
|
1599 // ignore the CSS property "background-attachment: fixed". |
|
1600 shouldBlitOnFixedBackgroundImage = true; |
|
1601 #endif |
|
1602 |
|
1603 bool newStyleSlowScroll = newStyle && !shouldBlitOnFixedBackgroundImage && newStyle->hasFixedBackgroundImage(); |
|
1604 bool oldStyleSlowScroll = m_style && !shouldBlitOnFixedBackgroundImage && m_style->hasFixedBackgroundImage(); |
1598 if (oldStyleSlowScroll != newStyleSlowScroll) { |
1605 if (oldStyleSlowScroll != newStyleSlowScroll) { |
1599 if (oldStyleSlowScroll) |
1606 if (oldStyleSlowScroll) |
1600 view()->frameView()->removeSlowRepaintObject(); |
1607 view()->frameView()->removeSlowRepaintObject(); |
1601 if (newStyleSlowScroll) |
1608 if (newStyleSlowScroll) |
1602 view()->frameView()->addSlowRepaintObject(); |
1609 view()->frameView()->addSlowRepaintObject(); |