Index: ash/accelerators/accelerator_filter.cc |
diff --git a/ash/accelerators/accelerator_filter.cc b/ash/accelerators/accelerator_filter.cc |
index ee818e971d1de8943b1182097fbc285ad896cfab..957efaadba9f9908c01f71bc345f56047ec9641a 100644 |
--- a/ash/accelerators/accelerator_filter.cc |
+++ b/ash/accelerators/accelerator_filter.cc |
@@ -34,12 +34,16 @@ AcceleratorFilter::~AcceleratorFilter() { |
bool AcceleratorFilter::PreHandleKeyEvent(aura::Window* target, |
aura::KeyEvent* event) { |
- if (event->type() == ui::ET_KEY_PRESSED && !event->is_char()) { |
- return Shell::GetInstance()->accelerator_controller()->Process( |
- ui::Accelerator(event->key_code(), |
- event->flags() & kModifierFlagMask)); |
- } |
- return false; |
+ const ui::EventType type = event->type(); |
+ if (type != ui::ET_KEY_PRESSED && type != ui::ET_TRANSLATED_KEY_PRESS) |
+ return false; |
+ if (event->is_char()) |
+ return false; |
+ |
+ ui::Accelerator accelerator(event->key_code(), |
+ event->flags() & kModifierFlagMask); |
+ accelerator.set_type(type); |
+ return Shell::GetInstance()->accelerator_controller()->Process(accelerator); |
} |
bool AcceleratorFilter::PreHandleMouseEvent(aura::Window* target, |