OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2010 Google Inc. All rights reserved. | 2 * Copyright (C) 2010 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 are | 5 * modification, are permitted provided that the following conditions are |
6 * met: | 6 * met: |
7 * | 7 * |
8 * * Redistributions of source code must retain the above copyright | 8 * * 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 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
52 ASSERT(!m_queuedEventDispatchMediators.size()); | 52 ASSERT(!m_queuedEventDispatchMediators.size()); |
53 } | 53 } |
54 | 54 |
55 void ScopedEventQueue::initialize() | 55 void ScopedEventQueue::initialize() |
56 { | 56 { |
57 ASSERT(!s_instance); | 57 ASSERT(!s_instance); |
58 OwnPtr<ScopedEventQueue> instance = adoptPtr(new ScopedEventQueue); | 58 OwnPtr<ScopedEventQueue> instance = adoptPtr(new ScopedEventQueue); |
59 s_instance = instance.leakPtr(); | 59 s_instance = instance.leakPtr(); |
60 } | 60 } |
61 | 61 |
62 void ScopedEventQueue::enqueueEventDispatchMediator(PassRefPtr<EventDispatchMedi
ator> mediator) | 62 void ScopedEventQueue::enqueueEventDispatchMediator(PassRefPtrWillBeRawPtr<Event
DispatchMediator> mediator) |
63 { | 63 { |
64 if (m_scopingLevel) | 64 if (m_scopingLevel) |
65 m_queuedEventDispatchMediators.append(mediator); | 65 m_queuedEventDispatchMediators.append(mediator); |
66 else | 66 else |
67 dispatchEvent(mediator); | 67 dispatchEvent(mediator); |
68 } | 68 } |
69 | 69 |
70 void ScopedEventQueue::dispatchAllEvents() | 70 void ScopedEventQueue::dispatchAllEvents() |
71 { | 71 { |
72 Vector<RefPtr<EventDispatchMediator> > queuedEventDispatchMediators; | 72 WillBeHeapVector<RefPtrWillBeMember<EventDispatchMediator> > queuedEventDisp
atchMediators; |
73 queuedEventDispatchMediators.swap(m_queuedEventDispatchMediators); | 73 queuedEventDispatchMediators.swap(m_queuedEventDispatchMediators); |
74 | 74 |
75 for (size_t i = 0; i < queuedEventDispatchMediators.size(); i++) | 75 for (size_t i = 0; i < queuedEventDispatchMediators.size(); i++) |
76 dispatchEvent(queuedEventDispatchMediators[i].release()); | 76 dispatchEvent(queuedEventDispatchMediators[i].release()); |
77 } | 77 } |
78 | 78 |
79 void ScopedEventQueue::dispatchEvent(PassRefPtr<EventDispatchMediator> mediator)
const | 79 void ScopedEventQueue::dispatchEvent(PassRefPtrWillBeRawPtr<EventDispatchMediato
r> mediator) const |
80 { | 80 { |
81 ASSERT(mediator->event()->target()); | 81 ASSERT(mediator->event()->target()); |
82 Node* node = mediator->event()->target()->toNode(); | 82 Node* node = mediator->event()->target()->toNode(); |
83 EventDispatcher::dispatchEvent(node, mediator); | 83 EventDispatcher::dispatchEvent(node, mediator); |
84 } | 84 } |
85 | 85 |
86 ScopedEventQueue* ScopedEventQueue::instance() | 86 ScopedEventQueue* ScopedEventQueue::instance() |
87 { | 87 { |
88 if (!s_instance) | 88 if (!s_instance) |
89 initialize(); | 89 initialize(); |
90 | 90 |
91 return s_instance; | 91 return s_instance; |
92 } | 92 } |
93 | 93 |
94 void ScopedEventQueue::incrementScopingLevel() | 94 void ScopedEventQueue::incrementScopingLevel() |
95 { | 95 { |
96 m_scopingLevel++; | 96 m_scopingLevel++; |
97 } | 97 } |
98 | 98 |
99 void ScopedEventQueue::decrementScopingLevel() | 99 void ScopedEventQueue::decrementScopingLevel() |
100 { | 100 { |
101 ASSERT(m_scopingLevel); | 101 ASSERT(m_scopingLevel); |
102 m_scopingLevel--; | 102 m_scopingLevel--; |
103 if (!m_scopingLevel) | 103 if (!m_scopingLevel) |
104 dispatchAllEvents(); | 104 dispatchAllEvents(); |
105 } | 105 } |
106 | 106 |
107 } | 107 } |
OLD | NEW |