Index: ui/events/event_rewriter.h |
diff --git a/ui/events/event_rewriter.h b/ui/events/event_rewriter.h |
index f948725709a86a08b3ea138eaf9f2a6232289c03..82e87505a725f2b40260de554719e9624d403098 100644 |
--- a/ui/events/event_rewriter.h |
+++ b/ui/events/event_rewriter.h |
@@ -19,9 +19,9 @@ enum EventRewriteStatus { |
// was the final rewriter. |
EVENT_REWRITE_CONTINUE, |
- // The event has been rewritten. Send the rewritten event to the |
- // EventProcessor instead of the original event (without sending |
- // either to any later rewriters). |
+ // The event has been rewritten. Send the rewritten event (which may |
+ // be either the modified original event, or a newly allocated event) |
+ // to the EventProcessor, without sending it to any later rewriters. |
EVENT_REWRITE_REWRITTEN, |
// The event should be discarded, neither passing it to any later |
@@ -29,11 +29,10 @@ enum EventRewriteStatus { |
EVENT_REWRITE_DISCARD, |
// The event has been rewritten. As for EVENT_REWRITE_REWRITTEN, |
- // send the rewritten event to the EventProcessor instead of the |
- // original event (without sending either to any later rewriters). |
- // In addition the rewriter has one or more additional new events |
- // to be retrieved using |NextDispatchEvent()| and sent to the |
- // EventProcessor. |
+ // send the rewritten event to the EventProcessor without invoking |
+ // any later rewriters. In addition the rewriter has one or more |
+ // additional new events to be retrieved using |NextDispatchEvent()| |
+ // and sent to the EventProcessor. |
EVENT_REWRITE_DISPATCH_ANOTHER, |
}; |
@@ -43,13 +42,15 @@ class EVENTS_EXPORT EventRewriter { |
public: |
virtual ~EventRewriter() {} |
- // Potentially rewrites (replaces) an event, or requests it be discarded. |
- // or discards an event. If the rewriter wants to rewrite an event, and |
- // dispatch another event once the rewritten event is dispatched, it should |
- // return EVENT_REWRITE_DISPATCH_ANOTHER, and return the next event to |
+ // Potentially rewrites or replaces an event, or requests it be discarded. |
+ // A rewritten event may either be the modified original |event|, or a |
+ // newly allocated event returned through |rewritten_event| (but not both). |
+ // If the rewriter wants to rewrite an event, and dispatch another |
+ // event once the rewritten event is dispatched, it should return |
+ // EVENT_REWRITE_DISPATCH_ANOTHER, and return the next event to |
// dispatch from |NextDispatchEvent()|. |
virtual EventRewriteStatus RewriteEvent( |
- const Event& event, |
+ Event* event, |
scoped_ptr<Event>* rewritten_event) = 0; |
// Supplies an additional event to be dispatched. It is only valid to |
@@ -57,7 +58,9 @@ class EVENTS_EXPORT EventRewriter { |
// or |NextDispatchEvent()| has returned EVENT_REWRITE_DISPATCH_ANOTHER. |
// Should only return either EVENT_REWRITE_REWRITTEN or |
// EVENT_REWRITE_DISPATCH_ANOTHER; otherwise the previous call should not |
- // have returned EVENT_REWRITE_DISPATCH_ANOTHER. |
+ // have returned EVENT_REWRITE_DISPATCH_ANOTHER. |last_event| must be |
+ // the previous rewritten event, and the additional event is returned |
+ // through |new_event|. |
virtual EventRewriteStatus NextDispatchEvent( |
const Event& last_event, |
scoped_ptr<Event>* new_event) = 0; |