| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "modules/canvas2d/HitRegion.h" | 5 #include "modules/canvas2d/HitRegion.h" |
| 6 | 6 |
| 7 #include "core/dom/AXObjectCache.h" | 7 #include "core/dom/AXObjectCache.h" |
| 8 | 8 |
| 9 namespace blink { | 9 namespace blink { |
| 10 | 10 |
| (...skipping 13 matching lines...) Expand all Loading... |
| 24 | 24 |
| 25 void HitRegion::removePixels(const Path& clearArea) { | 25 void HitRegion::removePixels(const Path& clearArea) { |
| 26 m_path.subtractPath(clearArea); | 26 m_path.subtractPath(clearArea); |
| 27 } | 27 } |
| 28 | 28 |
| 29 DEFINE_TRACE(HitRegion) { | 29 DEFINE_TRACE(HitRegion) { |
| 30 visitor->trace(m_control); | 30 visitor->trace(m_control); |
| 31 } | 31 } |
| 32 | 32 |
| 33 void HitRegionManager::addHitRegion(HitRegion* hitRegion) { | 33 void HitRegionManager::addHitRegion(HitRegion* hitRegion) { |
| 34 m_hitRegionList.add(hitRegion); | 34 m_hitRegionList.insert(hitRegion); |
| 35 | 35 |
| 36 if (!hitRegion->id().isEmpty()) | 36 if (!hitRegion->id().isEmpty()) |
| 37 m_hitRegionIdMap.set(hitRegion->id(), hitRegion); | 37 m_hitRegionIdMap.set(hitRegion->id(), hitRegion); |
| 38 | 38 |
| 39 if (hitRegion->control()) | 39 if (hitRegion->control()) |
| 40 m_hitRegionControlMap.set(hitRegion->control(), hitRegion); | 40 m_hitRegionControlMap.set(hitRegion->control(), hitRegion); |
| 41 } | 41 } |
| 42 | 42 |
| 43 void HitRegionManager::removeHitRegion(HitRegion* hitRegion) { | 43 void HitRegionManager::removeHitRegion(HitRegion* hitRegion) { |
| 44 if (!hitRegion) | 44 if (!hitRegion) |
| (...skipping 23 matching lines...) Expand all Loading... |
| 68 clearArea.addRect(rect); | 68 clearArea.addRect(rect); |
| 69 clearArea.transform(ctm); | 69 clearArea.transform(ctm); |
| 70 | 70 |
| 71 HitRegionIterator itEnd = m_hitRegionList.rend(); | 71 HitRegionIterator itEnd = m_hitRegionList.rend(); |
| 72 HitRegionList toBeRemoved; | 72 HitRegionList toBeRemoved; |
| 73 | 73 |
| 74 for (HitRegionIterator it = m_hitRegionList.rbegin(); it != itEnd; ++it) { | 74 for (HitRegionIterator it = m_hitRegionList.rbegin(); it != itEnd; ++it) { |
| 75 HitRegion* hitRegion = *it; | 75 HitRegion* hitRegion = *it; |
| 76 hitRegion->removePixels(clearArea); | 76 hitRegion->removePixels(clearArea); |
| 77 if (hitRegion->path().isEmpty()) | 77 if (hitRegion->path().isEmpty()) |
| 78 toBeRemoved.add(hitRegion); | 78 toBeRemoved.insert(hitRegion); |
| 79 } | 79 } |
| 80 | 80 |
| 81 itEnd = toBeRemoved.rend(); | 81 itEnd = toBeRemoved.rend(); |
| 82 for (HitRegionIterator it = toBeRemoved.rbegin(); it != itEnd; ++it) | 82 for (HitRegionIterator it = toBeRemoved.rbegin(); it != itEnd; ++it) |
| 83 removeHitRegion(it->get()); | 83 removeHitRegion(it->get()); |
| 84 } | 84 } |
| 85 | 85 |
| 86 void HitRegionManager::removeAllHitRegions() { | 86 void HitRegionManager::removeAllHitRegions() { |
| 87 m_hitRegionList.clear(); | 87 m_hitRegionList.clear(); |
| 88 m_hitRegionIdMap.clear(); | 88 m_hitRegionIdMap.clear(); |
| (...skipping 29 matching lines...) Expand all Loading... |
| 118 return m_hitRegionList.size(); | 118 return m_hitRegionList.size(); |
| 119 } | 119 } |
| 120 | 120 |
| 121 DEFINE_TRACE(HitRegionManager) { | 121 DEFINE_TRACE(HitRegionManager) { |
| 122 visitor->trace(m_hitRegionList); | 122 visitor->trace(m_hitRegionList); |
| 123 visitor->trace(m_hitRegionIdMap); | 123 visitor->trace(m_hitRegionIdMap); |
| 124 visitor->trace(m_hitRegionControlMap); | 124 visitor->trace(m_hitRegionControlMap); |
| 125 } | 125 } |
| 126 | 126 |
| 127 } // namespace blink | 127 } // namespace blink |
| OLD | NEW |