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 317 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
328 m_geometryNeedsUpdate = false; | 328 m_geometryNeedsUpdate = false; |
329 | 329 |
330 RenderLayer* compositingLayer = computeEnclosingCompositingLayer(); | 330 RenderLayer* compositingLayer = computeEnclosingCompositingLayer(); |
331 if (compositingLayer && computeHighlightLayerPathAndPosition(compositingLaye
r)) { | 331 if (compositingLayer && computeHighlightLayerPathAndPosition(compositingLaye
r)) { |
332 // We only need to invalidate the layer if the highlight size has change
d, otherwise | 332 // We only need to invalidate the layer if the highlight size has change
d, otherwise |
333 // we can just re-position the layer without needing to repaint. | 333 // we can just re-position the layer without needing to repaint. |
334 m_contentLayer->layer()->invalidate(); | 334 m_contentLayer->layer()->invalidate(); |
335 | 335 |
336 if (m_currentGraphicsLayer) | 336 if (m_currentGraphicsLayer) |
337 m_currentGraphicsLayer->addRepaintRect(FloatRect(layer()->position()
.x, layer()->position().y, layer()->bounds().width, layer()->bounds().height)); | 337 m_currentGraphicsLayer->addRepaintRect(FloatRect(layer()->position()
.x, layer()->position().y, layer()->bounds().width, layer()->bounds().height)); |
| 338 } else { |
| 339 clearGraphicsLayerLinkHighlightPointer(); |
| 340 releaseResources(); |
338 } | 341 } |
339 } | 342 } |
340 | 343 |
341 void LinkHighlight::clearCurrentGraphicsLayer() | 344 void LinkHighlight::clearCurrentGraphicsLayer() |
342 { | 345 { |
343 m_currentGraphicsLayer = 0; | 346 m_currentGraphicsLayer = 0; |
344 m_geometryNeedsUpdate = true; | 347 m_geometryNeedsUpdate = true; |
345 } | 348 } |
346 | 349 |
347 void LinkHighlight::invalidate() | 350 void LinkHighlight::invalidate() |
348 { | 351 { |
349 // Make sure we update geometry on the next callback from WebViewImpl::layou
t(). | 352 // Make sure we update geometry on the next callback from WebViewImpl::layou
t(). |
350 m_geometryNeedsUpdate = true; | 353 m_geometryNeedsUpdate = true; |
351 } | 354 } |
352 | 355 |
353 WebLayer* LinkHighlight::layer() | 356 WebLayer* LinkHighlight::layer() |
354 { | 357 { |
355 return clipLayer(); | 358 return clipLayer(); |
356 } | 359 } |
357 | 360 |
358 } // namespace WeKit | 361 } // namespace WeKit |
OLD | NEW |