Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(8)

Side by Side Diff: third_party/WebKit/Source/core/input/PointerEventManager.cpp

Issue 2673543003: Migrate WTF::HashMap::remove() to ::erase() (Closed)
Patch Set: Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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 "core/input/PointerEventManager.h" 5 #include "core/input/PointerEventManager.h"
6 6
7 #include "core/dom/DocumentUserGestureToken.h" 7 #include "core/dom/DocumentUserGestureToken.h"
8 #include "core/dom/ElementTraversal.h" 8 #include "core/dom/ElementTraversal.h"
9 #include "core/dom/shadow/FlatTreeTraversal.h" 9 #include "core/dom/shadow/FlatTreeTraversal.h"
10 #include "core/events/MouseEvent.h" 10 #include "core/events/MouseEvent.h"
(...skipping 199 matching lines...) Expand 10 before | Expand all | Expand 10 after
210 pointerEvent); 210 pointerEvent);
211 boundaryEventDispatcher.sendBoundaryEvents(exitedTarget, enteredTarget); 211 boundaryEventDispatcher.sendBoundaryEvents(exitedTarget, enteredTarget);
212 } 212 }
213 213
214 void PointerEventManager::setNodeUnderPointer(PointerEvent* pointerEvent, 214 void PointerEventManager::setNodeUnderPointer(PointerEvent* pointerEvent,
215 EventTarget* target) { 215 EventTarget* target) {
216 if (m_nodeUnderPointer.contains(pointerEvent->pointerId())) { 216 if (m_nodeUnderPointer.contains(pointerEvent->pointerId())) {
217 EventTargetAttributes node = 217 EventTargetAttributes node =
218 m_nodeUnderPointer.get(pointerEvent->pointerId()); 218 m_nodeUnderPointer.get(pointerEvent->pointerId());
219 if (!target) { 219 if (!target) {
220 m_nodeUnderPointer.remove(pointerEvent->pointerId()); 220 m_nodeUnderPointer.erase(pointerEvent->pointerId());
221 } else if (target != 221 } else if (target !=
222 m_nodeUnderPointer.get(pointerEvent->pointerId()).target) { 222 m_nodeUnderPointer.get(pointerEvent->pointerId()).target) {
223 m_nodeUnderPointer.set(pointerEvent->pointerId(), 223 m_nodeUnderPointer.set(pointerEvent->pointerId(),
224 EventTargetAttributes(target, false)); 224 EventTargetAttributes(target, false));
225 } 225 }
226 sendBoundaryEvents(node.target, target, pointerEvent); 226 sendBoundaryEvents(node.target, target, pointerEvent);
227 } else if (target) { 227 } else if (target) {
228 m_nodeUnderPointer.add(pointerEvent->pointerId(), 228 m_nodeUnderPointer.add(pointerEvent->pointerId(),
229 EventTargetAttributes(target, false)); 229 EventTargetAttributes(target, false));
230 sendBoundaryEvents(nullptr, target, pointerEvent); 230 sendBoundaryEvents(nullptr, target, pointerEvent);
(...skipping 351 matching lines...) Expand 10 before | Expand all | Expand 10 after
582 pointerEvent, EventTypeNames::lostpointercapture)); 582 pointerEvent, EventTypeNames::lostpointercapture));
583 } 583 }
584 584
585 if (pendingPointerCaptureTarget) { 585 if (pendingPointerCaptureTarget) {
586 setNodeUnderPointer(pointerEvent, pendingPointerCaptureTarget); 586 setNodeUnderPointer(pointerEvent, pendingPointerCaptureTarget);
587 dispatchPointerEvent(pendingPointerCaptureTarget, 587 dispatchPointerEvent(pendingPointerCaptureTarget,
588 m_pointerEventFactory.createPointerCaptureEvent( 588 m_pointerEventFactory.createPointerCaptureEvent(
589 pointerEvent, EventTypeNames::gotpointercapture)); 589 pointerEvent, EventTypeNames::gotpointercapture));
590 m_pointerCaptureTarget.set(pointerId, pendingPointerCaptureTarget); 590 m_pointerCaptureTarget.set(pointerId, pendingPointerCaptureTarget);
591 } else { 591 } else {
592 m_pointerCaptureTarget.remove(pointerId); 592 m_pointerCaptureTarget.erase(pointerId);
593 } 593 }
594 } 594 }
595 595
596 void PointerEventManager::removeTargetFromPointerCapturingMapping( 596 void PointerEventManager::removeTargetFromPointerCapturingMapping(
597 PointerCapturingMap& map, 597 PointerCapturingMap& map,
598 const EventTarget* target) { 598 const EventTarget* target) {
599 // We could have kept a reverse mapping to make this deletion possibly 599 // We could have kept a reverse mapping to make this deletion possibly
600 // faster but it adds some code complication which might not be worth of 600 // faster but it adds some code complication which might not be worth of
601 // the performance improvement considering there might not be a lot of 601 // the performance improvement considering there might not be a lot of
602 // active pointer or pointer captures at the same time. 602 // active pointer or pointer captures at the same time.
603 PointerCapturingMap tmp = map; 603 PointerCapturingMap tmp = map;
604 for (PointerCapturingMap::iterator it = tmp.begin(); it != tmp.end(); ++it) { 604 for (PointerCapturingMap::iterator it = tmp.begin(); it != tmp.end(); ++it) {
605 if (it->value == target) 605 if (it->value == target)
606 map.remove(it->key); 606 map.erase(it->key);
607 } 607 }
608 } 608 }
609 609
610 EventTarget* PointerEventManager::getCapturingNode(int pointerId) { 610 EventTarget* PointerEventManager::getCapturingNode(int pointerId) {
611 if (m_pointerCaptureTarget.contains(pointerId)) 611 if (m_pointerCaptureTarget.contains(pointerId))
612 return m_pointerCaptureTarget.get(pointerId); 612 return m_pointerCaptureTarget.get(pointerId);
613 return nullptr; 613 return nullptr;
614 } 614 }
615 615
616 void PointerEventManager::removePointer(PointerEvent* pointerEvent) { 616 void PointerEventManager::removePointer(PointerEvent* pointerEvent) {
617 int pointerId = pointerEvent->pointerId(); 617 int pointerId = pointerEvent->pointerId();
618 if (m_pointerEventFactory.remove(pointerId)) { 618 if (m_pointerEventFactory.remove(pointerId)) {
619 m_pendingPointerCaptureTarget.remove(pointerId); 619 m_pendingPointerCaptureTarget.erase(pointerId);
620 m_pointerCaptureTarget.remove(pointerId); 620 m_pointerCaptureTarget.erase(pointerId);
621 m_nodeUnderPointer.remove(pointerId); 621 m_nodeUnderPointer.erase(pointerId);
622 } 622 }
623 } 623 }
624 624
625 void PointerEventManager::elementRemoved(EventTarget* target) { 625 void PointerEventManager::elementRemoved(EventTarget* target) {
626 removeTargetFromPointerCapturingMapping(m_pendingPointerCaptureTarget, 626 removeTargetFromPointerCapturingMapping(m_pendingPointerCaptureTarget,
627 target); 627 target);
628 } 628 }
629 629
630 void PointerEventManager::setPointerCapture(int pointerId, 630 void PointerEventManager::setPointerCapture(int pointerId,
631 EventTarget* target) { 631 EventTarget* target) {
(...skipping 20 matching lines...) Expand all
652 return m_pendingPointerCaptureTarget.get(pointerId) == target; 652 return m_pendingPointerCaptureTarget.get(pointerId) == target;
653 } 653 }
654 654
655 bool PointerEventManager::hasProcessedPointerCapture( 655 bool PointerEventManager::hasProcessedPointerCapture(
656 int pointerId, 656 int pointerId,
657 const EventTarget* target) const { 657 const EventTarget* target) const {
658 return m_pointerCaptureTarget.get(pointerId) == target; 658 return m_pointerCaptureTarget.get(pointerId) == target;
659 } 659 }
660 660
661 void PointerEventManager::releasePointerCapture(int pointerId) { 661 void PointerEventManager::releasePointerCapture(int pointerId) {
662 m_pendingPointerCaptureTarget.remove(pointerId); 662 m_pendingPointerCaptureTarget.erase(pointerId);
663 } 663 }
664 664
665 bool PointerEventManager::isActive(const int pointerId) const { 665 bool PointerEventManager::isActive(const int pointerId) const {
666 return m_pointerEventFactory.isActive(pointerId); 666 return m_pointerEventFactory.isActive(pointerId);
667 } 667 }
668 668
669 // This function checks the type of the pointer event to be touch as touch 669 // This function checks the type of the pointer event to be touch as touch
670 // pointer events are the only ones that are directly dispatched from the main 670 // pointer events are the only ones that are directly dispatched from the main
671 // page managers to their target (event if target is in an iframe) and only 671 // page managers to their target (event if target is in an iframe) and only
672 // those managers will keep track of these pointer events. 672 // those managers will keep track of these pointer events.
(...skipping 25 matching lines...) Expand all
698 if (firstId > uniqueTouchEventId) 698 if (firstId > uniqueTouchEventId)
699 return false; 699 return false;
700 m_touchIdsForCanceledPointerdowns.takeFirst(); 700 m_touchIdsForCanceledPointerdowns.takeFirst();
701 if (firstId == uniqueTouchEventId) 701 if (firstId == uniqueTouchEventId)
702 return true; 702 return true;
703 } 703 }
704 return false; 704 return false;
705 } 705 }
706 706
707 } // namespace blink 707 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698