| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2012 Google Inc. All rights reserved. | 2 * Copyright (C) 2012 Google Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions | 5 * modification, are permitted provided that the following conditions |
| 6 * are met: | 6 * are met: |
| 7 * | 7 * |
| 8 * 1. Redistributions of source code must retain the above copyright | 8 * 1. Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * 2. Redistributions in binary form must reproduce the above copyright | 10 * 2. Redistributions in binary form must reproduce the above copyright |
| (...skipping 21 matching lines...) Expand all Loading... |
| 32 #include "core/frame/FrameView.h" | 32 #include "core/frame/FrameView.h" |
| 33 #include "core/frame/LocalFrame.h" | 33 #include "core/frame/LocalFrame.h" |
| 34 #include "core/rendering/RenderLayer.h" | 34 #include "core/rendering/RenderLayer.h" |
| 35 #include "core/rendering/RenderLayerModelObject.h" | 35 #include "core/rendering/RenderLayerModelObject.h" |
| 36 #include "core/rendering/RenderObject.h" | 36 #include "core/rendering/RenderObject.h" |
| 37 #include "core/rendering/RenderPart.h" | 37 #include "core/rendering/RenderPart.h" |
| 38 #include "core/rendering/RenderView.h" | 38 #include "core/rendering/RenderView.h" |
| 39 #include "core/rendering/compositing/CompositedLayerMapping.h" | 39 #include "core/rendering/compositing/CompositedLayerMapping.h" |
| 40 #include "core/rendering/style/ShadowData.h" | 40 #include "core/rendering/style/ShadowData.h" |
| 41 #include "platform/graphics/Color.h" | 41 #include "platform/graphics/Color.h" |
| 42 #include "platform/graphics/DisplayList.h" |
| 42 #include "public/platform/Platform.h" | 43 #include "public/platform/Platform.h" |
| 43 #include "public/platform/WebCompositorAnimationCurve.h" | 44 #include "public/platform/WebCompositorAnimationCurve.h" |
| 44 #include "public/platform/WebCompositorSupport.h" | 45 #include "public/platform/WebCompositorSupport.h" |
| 45 #include "public/platform/WebFloatAnimationCurve.h" | 46 #include "public/platform/WebFloatAnimationCurve.h" |
| 46 #include "public/platform/WebFloatPoint.h" | 47 #include "public/platform/WebFloatPoint.h" |
| 47 #include "public/platform/WebRect.h" | 48 #include "public/platform/WebRect.h" |
| 48 #include "public/platform/WebSize.h" | 49 #include "public/platform/WebSize.h" |
| 49 #include "public/web/WebKit.h" | 50 #include "public/web/WebKit.h" |
| 50 #include "web/WebLocalFrameImpl.h" | 51 #include "web/WebLocalFrameImpl.h" |
| 51 #include "web/WebSettingsImpl.h" | 52 #include "web/WebSettingsImpl.h" |
| (...skipping 177 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 229 } else | 230 } else |
| 230 addQuadToPath(transformedQuad, newPath); | 231 addQuadToPath(transformedQuad, newPath); |
| 231 } | 232 } |
| 232 | 233 |
| 233 FloatRect boundingRect = newPath.boundingRect(); | 234 FloatRect boundingRect = newPath.boundingRect(); |
| 234 newPath.translate(-toFloatSize(boundingRect.location())); | 235 newPath.translate(-toFloatSize(boundingRect.location())); |
| 235 | 236 |
| 236 bool pathHasChanged = !(newPath == m_path); | 237 bool pathHasChanged = !(newPath == m_path); |
| 237 if (pathHasChanged) { | 238 if (pathHasChanged) { |
| 238 m_path = newPath; | 239 m_path = newPath; |
| 240 |
| 241 GraphicsContext gc(0); |
| 242 gc.beginRecording(boundingRect); |
| 243 gc.setFillColor(m_node->renderer()->style()->tapHighlightColor()); |
| 244 gc.fillPath(m_path); |
| 245 m_displayList = gc.endRecording(); |
| 246 |
| 239 m_contentLayer->layer()->setBounds(enclosingIntRect(boundingRect).size()
); | 247 m_contentLayer->layer()->setBounds(enclosingIntRect(boundingRect).size()
); |
| 240 } | 248 } |
| 241 | 249 |
| 242 m_contentLayer->layer()->setPosition(boundingRect.location()); | 250 m_contentLayer->layer()->setPosition(boundingRect.location()); |
| 243 | 251 |
| 244 return pathHasChanged; | 252 return pathHasChanged; |
| 245 } | 253 } |
| 246 | 254 |
| 247 void LinkHighlight::paintContents(WebCanvas* canvas, const WebRect& webClipRect,
bool, WebFloatRect&, | 255 void LinkHighlight::paintContents(WebCanvas* canvas, const WebRect& webClipRect,
bool, WebFloatRect&, |
| 248 WebContentLayerClient::GraphicsContextStatus contextStatus) | 256 WebContentLayerClient::GraphicsContextStatus contextStatus) |
| 249 { | 257 { |
| 250 if (!m_node || !m_node->renderer()) | 258 if (!m_node || !m_node->renderer()) |
| 251 return; | 259 return; |
| 252 | 260 |
| 253 GraphicsContext gc(canvas, | 261 GraphicsContext gc(canvas, |
| 254 contextStatus == WebContentLayerClient::GraphicsContextEnabled ? Graphic
sContext::NothingDisabled : GraphicsContext::FullyDisabled); | 262 contextStatus == WebContentLayerClient::GraphicsContextEnabled ? Graphic
sContext::NothingDisabled : GraphicsContext::FullyDisabled); |
| 255 IntRect clipRect(IntPoint(webClipRect.x, webClipRect.y), IntSize(webClipRect
.width, webClipRect.height)); | 263 IntRect clipRect(IntPoint(webClipRect.x, webClipRect.y), IntSize(webClipRect
.width, webClipRect.height)); |
| 256 gc.clip(clipRect); | 264 m_displayList->setClip(clipRect); |
| 257 gc.setFillColor(m_node->renderer()->style()->tapHighlightColor()); | 265 gc.drawDisplayList(m_displayList.get()); |
| 258 gc.fillPath(m_path); | |
| 259 } | 266 } |
| 260 | 267 |
| 261 void LinkHighlight::startHighlightAnimationIfNeeded() | 268 void LinkHighlight::startHighlightAnimationIfNeeded() |
| 262 { | 269 { |
| 263 if (m_isAnimating) | 270 if (m_isAnimating) |
| 264 return; | 271 return; |
| 265 | 272 |
| 266 m_isAnimating = true; | 273 m_isAnimating = true; |
| 267 const float startOpacity = 1; | 274 const float startOpacity = 1; |
| 268 // FIXME: Should duration be configurable? | 275 // FIXME: Should duration be configurable? |
| (...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 346 // Make sure we update geometry on the next callback from WebViewImpl::layou
t(). | 353 // Make sure we update geometry on the next callback from WebViewImpl::layou
t(). |
| 347 m_geometryNeedsUpdate = true; | 354 m_geometryNeedsUpdate = true; |
| 348 } | 355 } |
| 349 | 356 |
| 350 WebLayer* LinkHighlight::layer() | 357 WebLayer* LinkHighlight::layer() |
| 351 { | 358 { |
| 352 return clipLayer(); | 359 return clipLayer(); |
| 353 } | 360 } |
| 354 | 361 |
| 355 } // namespace blink | 362 } // namespace blink |
| OLD | NEW |