1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "ash/wm/event_rewriter_event_filter.h"
7 #include "ash/event_rewriter_delegate.h"
8 #include "base/logging.h"
9 #include "ui/events/event.h"
14 EventRewriterEventFilter::EventRewriterEventFilter() {}
16 EventRewriterEventFilter::~EventRewriterEventFilter() {}
18 void EventRewriterEventFilter::SetEventRewriterDelegate(
19 scoped_ptr<EventRewriterDelegate> delegate) {
20 delegate_ = delegate.Pass();
23 void EventRewriterEventFilter::OnKeyEvent(ui::KeyEvent* event) {
27 // Do not consume a translated key event which is generated by an IME.
28 if (event->type() == ui::ET_TRANSLATED_KEY_PRESS ||
29 event->type() == ui::ET_TRANSLATED_KEY_RELEASE) {
33 switch (delegate_->RewriteOrFilterKeyEvent(event)) {
34 case EventRewriterDelegate::ACTION_REWRITE_EVENT:
36 case EventRewriterDelegate::ACTION_DROP_EVENT:
37 event->StopPropagation();
42 void EventRewriterEventFilter::OnMouseEvent(ui::MouseEvent* event) {
46 switch (delegate_->RewriteOrFilterLocatedEvent(event)) {
47 case EventRewriterDelegate::ACTION_REWRITE_EVENT:
49 case EventRewriterDelegate::ACTION_DROP_EVENT:
50 event->StopPropagation();
55 } // namespace internal