| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011, 2012 Apple Inc. All rights
reserved. | 2 * Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011, 2012 Apple Inc. All rights
reserved. |
| 3 * | 3 * |
| 4 * Portions are Copyright (C) 1998 Netscape Communications Corporation. | 4 * Portions are Copyright (C) 1998 Netscape Communications Corporation. |
| 5 * | 5 * |
| 6 * Other contributors: | 6 * Other contributors: |
| 7 * Robert O'Callahan <roc+@cs.cmu.edu> | 7 * Robert O'Callahan <roc+@cs.cmu.edu> |
| 8 * David Baron <dbaron@fas.harvard.edu> | 8 * David Baron <dbaron@fas.harvard.edu> |
| 9 * Christian Biesinger <cbiesinger@web.de> | 9 * Christian Biesinger <cbiesinger@web.de> |
| 10 * Randall Jesup <rjesup@wgate.com> | 10 * Randall Jesup <rjesup@wgate.com> |
| (...skipping 1601 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1612 if (ancestor) | 1612 if (ancestor) |
| 1613 ancestor->beginTransparencyLayers(context, rootLayer, paintDirtyRect, pa
intBehavior); | 1613 ancestor->beginTransparencyLayers(context, rootLayer, paintDirtyRect, pa
intBehavior); |
| 1614 | 1614 |
| 1615 if (paintsWithTransparency(paintBehavior)) { | 1615 if (paintsWithTransparency(paintBehavior)) { |
| 1616 m_usedTransparency = true; | 1616 m_usedTransparency = true; |
| 1617 context->save(); | 1617 context->save(); |
| 1618 LayoutRect clipRect = paintingExtent(rootLayer, paintDirtyRect, paintBeh
avior); | 1618 LayoutRect clipRect = paintingExtent(rootLayer, paintDirtyRect, paintBeh
avior); |
| 1619 context->clip(clipRect); | 1619 context->clip(clipRect); |
| 1620 context->beginTransparencyLayer(renderer()->opacity()); | 1620 context->beginTransparencyLayer(renderer()->opacity()); |
| 1621 #ifdef REVEAL_TRANSPARENCY_LAYERS | 1621 #ifdef REVEAL_TRANSPARENCY_LAYERS |
| 1622 context->setFillColor(Color(0.0f, 0.0f, 0.5f, 0.2f), ColorSpaceDeviceRGB
); | 1622 context->setFillColor(Color(0.0f, 0.0f, 0.5f, 0.2f)); |
| 1623 context->fillRect(clipRect); | 1623 context->fillRect(clipRect); |
| 1624 #endif | 1624 #endif |
| 1625 } | 1625 } |
| 1626 } | 1626 } |
| 1627 | 1627 |
| 1628 void* RenderLayer::operator new(size_t sz, RenderArena* renderArena) | 1628 void* RenderLayer::operator new(size_t sz, RenderArena* renderArena) |
| 1629 { | 1629 { |
| 1630 return renderArena->allocate(sz); | 1630 return renderArena->allocate(sz); |
| 1631 } | 1631 } |
| 1632 | 1632 |
| (...skipping 1634 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3267 } | 3267 } |
| 3268 | 3268 |
| 3269 if (m_scrollCorner) { | 3269 if (m_scrollCorner) { |
| 3270 m_scrollCorner->paintIntoRect(context, paintOffset, absRect); | 3270 m_scrollCorner->paintIntoRect(context, paintOffset, absRect); |
| 3271 return; | 3271 return; |
| 3272 } | 3272 } |
| 3273 | 3273 |
| 3274 // We don't want to paint white if we have overlay scrollbars, since we need | 3274 // We don't want to paint white if we have overlay scrollbars, since we need |
| 3275 // to see what is behind it. | 3275 // to see what is behind it. |
| 3276 if (!hasOverlayScrollbars()) | 3276 if (!hasOverlayScrollbars()) |
| 3277 context->fillRect(absRect, Color::white, box->style()->colorSpace()); | 3277 context->fillRect(absRect, Color::white); |
| 3278 } | 3278 } |
| 3279 | 3279 |
| 3280 void RenderLayer::drawPlatformResizerImage(GraphicsContext* context, IntRect res
izerCornerRect) | 3280 void RenderLayer::drawPlatformResizerImage(GraphicsContext* context, IntRect res
izerCornerRect) |
| 3281 { | 3281 { |
| 3282 float deviceScaleFactor = WebCore::deviceScaleFactor(renderer()->frame()); | 3282 float deviceScaleFactor = WebCore::deviceScaleFactor(renderer()->frame()); |
| 3283 | 3283 |
| 3284 RefPtr<Image> resizeCornerImage; | 3284 RefPtr<Image> resizeCornerImage; |
| 3285 IntSize cornerResizerSize; | 3285 IntSize cornerResizerSize; |
| 3286 if (deviceScaleFactor >= 2) { | 3286 if (deviceScaleFactor >= 2) { |
| 3287 DEFINE_STATIC_LOCAL(Image*, resizeCornerImageHiRes, (Image::loadPlatform
Resource("textAreaResizeCorner@2x").leakRef())); | 3287 DEFINE_STATIC_LOCAL(Image*, resizeCornerImageHiRes, (Image::loadPlatform
Resource("textAreaResizeCorner@2x").leakRef())); |
| 3288 resizeCornerImage = resizeCornerImageHiRes; | 3288 resizeCornerImage = resizeCornerImageHiRes; |
| 3289 cornerResizerSize = resizeCornerImage->size(); | 3289 cornerResizerSize = resizeCornerImage->size(); |
| 3290 cornerResizerSize.scale(0.5f); | 3290 cornerResizerSize.scale(0.5f); |
| 3291 } else { | 3291 } else { |
| 3292 DEFINE_STATIC_LOCAL(Image*, resizeCornerImageLoRes, (Image::loadPlatform
Resource("textAreaResizeCorner").leakRef())); | 3292 DEFINE_STATIC_LOCAL(Image*, resizeCornerImageLoRes, (Image::loadPlatform
Resource("textAreaResizeCorner").leakRef())); |
| 3293 resizeCornerImage = resizeCornerImageLoRes; | 3293 resizeCornerImage = resizeCornerImageLoRes; |
| 3294 cornerResizerSize = resizeCornerImage->size(); | 3294 cornerResizerSize = resizeCornerImage->size(); |
| 3295 } | 3295 } |
| 3296 | 3296 |
| 3297 if (renderer()->style()->shouldPlaceBlockDirectionScrollbarOnLogicalLeft())
{ | 3297 if (renderer()->style()->shouldPlaceBlockDirectionScrollbarOnLogicalLeft())
{ |
| 3298 context->save(); | 3298 context->save(); |
| 3299 context->translate(resizerCornerRect.x() + cornerResizerSize.width(), re
sizerCornerRect.y() + resizerCornerRect.height() - cornerResizerSize.height()); | 3299 context->translate(resizerCornerRect.x() + cornerResizerSize.width(), re
sizerCornerRect.y() + resizerCornerRect.height() - cornerResizerSize.height()); |
| 3300 context->scale(FloatSize(-1.0, 1.0)); | 3300 context->scale(FloatSize(-1.0, 1.0)); |
| 3301 context->drawImage(resizeCornerImage.get(), renderer()->style()->colorSp
ace(), IntRect(IntPoint(), cornerResizerSize)); | 3301 context->drawImage(resizeCornerImage.get(), IntRect(IntPoint(), cornerRe
sizerSize)); |
| 3302 context->restore(); | 3302 context->restore(); |
| 3303 return; | 3303 return; |
| 3304 } | 3304 } |
| 3305 IntRect imageRect(resizerCornerRect.maxXMaxYCorner() - cornerResizerSize, co
rnerResizerSize); | 3305 IntRect imageRect(resizerCornerRect.maxXMaxYCorner() - cornerResizerSize, co
rnerResizerSize); |
| 3306 context->drawImage(resizeCornerImage.get(), renderer()->style()->colorSpace(
), imageRect); | 3306 context->drawImage(resizeCornerImage.get(), imageRect); |
| 3307 } | 3307 } |
| 3308 | 3308 |
| 3309 void RenderLayer::paintResizer(GraphicsContext* context, const IntPoint& paintOf
fset, const IntRect& damageRect) | 3309 void RenderLayer::paintResizer(GraphicsContext* context, const IntPoint& paintOf
fset, const IntRect& damageRect) |
| 3310 { | 3310 { |
| 3311 if (renderer()->style()->resize() == RESIZE_NONE) | 3311 if (renderer()->style()->resize() == RESIZE_NONE) |
| 3312 return; | 3312 return; |
| 3313 | 3313 |
| 3314 RenderBox* box = renderBox(); | 3314 RenderBox* box = renderBox(); |
| 3315 ASSERT(box); | 3315 ASSERT(box); |
| 3316 | 3316 |
| 3317 IntRect absRect = resizerCornerRect(box->pixelSnappedBorderBoxRect(), Resize
rForPointer); | 3317 IntRect absRect = resizerCornerRect(box->pixelSnappedBorderBoxRect(), Resize
rForPointer); |
| 3318 absRect.moveBy(paintOffset); | 3318 absRect.moveBy(paintOffset); |
| 3319 if (!absRect.intersects(damageRect)) | 3319 if (!absRect.intersects(damageRect)) |
| 3320 return; | 3320 return; |
| 3321 | 3321 |
| 3322 if (context->updatingControlTints()) { | 3322 if (context->updatingControlTints()) { |
| 3323 updateResizerStyle(); | 3323 updateResizerStyle(); |
| 3324 return; | 3324 return; |
| 3325 } | 3325 } |
| 3326 | 3326 |
| 3327 if (m_resizer) { | 3327 if (m_resizer) { |
| 3328 m_resizer->paintIntoRect(context, paintOffset, absRect); | 3328 m_resizer->paintIntoRect(context, paintOffset, absRect); |
| 3329 return; | 3329 return; |
| 3330 } | 3330 } |
| 3331 | 3331 |
| 3332 drawPlatformResizerImage(context, absRect); | 3332 drawPlatformResizerImage(context, absRect); |
| 3333 | 3333 |
| 3334 // Draw a frame around the resizer (1px grey line) if there are any scrollba
rs present. | 3334 // Draw a frame around the resizer (1px grey line) if there are any scrollba
rs present. |
| 3335 // Clipping will exclude the right and bottom edges of this frame. | 3335 // Clipping will exclude the right and bottom edges of this frame. |
| 3336 if (!hasOverlayScrollbars() && (m_vBar || m_hBar)) { | 3336 if (!hasOverlayScrollbars() && (m_vBar || m_hBar)) { |
| 3337 GraphicsContextStateSaver stateSaver(*context); | 3337 GraphicsContextStateSaver stateSaver(*context); |
| 3338 context->clip(absRect); | 3338 context->clip(absRect); |
| 3339 IntRect largerCorner = absRect; | 3339 IntRect largerCorner = absRect; |
| 3340 largerCorner.setSize(IntSize(largerCorner.width() + 1, largerCorner.heig
ht() + 1)); | 3340 largerCorner.setSize(IntSize(largerCorner.width() + 1, largerCorner.heig
ht() + 1)); |
| 3341 context->setStrokeColor(Color(makeRGB(217, 217, 217)), ColorSpaceDeviceR
GB); | 3341 context->setStrokeColor(Color(217, 217, 217)); |
| 3342 context->setStrokeThickness(1.0f); | 3342 context->setStrokeThickness(1.0f); |
| 3343 context->setFillColor(Color::transparent, ColorSpaceDeviceRGB); | 3343 context->setFillColor(Color::transparent); |
| 3344 context->drawRect(largerCorner); | 3344 context->drawRect(largerCorner); |
| 3345 } | 3345 } |
| 3346 } | 3346 } |
| 3347 | 3347 |
| 3348 bool RenderLayer::isPointInResizeControl(const IntPoint& absolutePoint, | 3348 bool RenderLayer::isPointInResizeControl(const IntPoint& absolutePoint, |
| 3349 ResizerHitTestType resizerHitTestType)
const | 3349 ResizerHitTestType resizerHitTestType)
const |
| 3350 { | 3350 { |
| 3351 if (!canResize()) | 3351 if (!canResize()) |
| 3352 return false; | 3352 return false; |
| 3353 | 3353 |
| (...skipping 3018 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6372 } | 6372 } |
| 6373 } | 6373 } |
| 6374 | 6374 |
| 6375 void showLayerTree(const WebCore::RenderObject* renderer) | 6375 void showLayerTree(const WebCore::RenderObject* renderer) |
| 6376 { | 6376 { |
| 6377 if (!renderer) | 6377 if (!renderer) |
| 6378 return; | 6378 return; |
| 6379 showLayerTree(renderer->enclosingLayer()); | 6379 showLayerTree(renderer->enclosingLayer()); |
| 6380 } | 6380 } |
| 6381 #endif | 6381 #endif |
| OLD | NEW |