| Index: ui/views/widget/native_widget_aura.cc
|
| diff --git a/ui/views/widget/native_widget_aura.cc b/ui/views/widget/native_widget_aura.cc
|
| index dc2f44152ea1d76183da549ad188e5a5e6b42fed..c46c4e6aaf64abd2fbebf3d9b16fbd32b054667f 100644
|
| --- a/ui/views/widget/native_widget_aura.cc
|
| +++ b/ui/views/widget/native_widget_aura.cc
|
| @@ -21,6 +21,7 @@
|
| #include "ui/aura/root_window.h"
|
| #include "ui/aura/window.h"
|
| #include "ui/aura/window_observer.h"
|
| +#include "ui/base/accelerators/accelerator.h"
|
| #include "ui/base/dragdrop/os_exchange_data.h"
|
| #include "ui/base/ui_base_types.h"
|
| #include "ui/compositor/layer.h"
|
| @@ -691,9 +692,17 @@ void NativeWidgetAura::DispatchKeyEventPostIME(const KeyEvent& key) {
|
| FocusManager* focus_manager = GetWidget()->GetFocusManager();
|
| if (focus_manager)
|
| focus_manager->MaybeResetMenuKeyState(key);
|
| - if (delegate_->OnKeyEvent(key) || !focus_manager)
|
| + const bool consumed = delegate_->OnKeyEvent(key);
|
| + if (!consumed && focus_manager)
|
| + focus_manager->OnKeyEvent(key);
|
| + if (!focus_manager)
|
| return;
|
| - focus_manager->OnKeyEvent(key);
|
| + ui::Accelerator accelerator(key.key_code(),
|
| + key.IsShiftDown(),
|
| + key.IsControlDown(),
|
| + key.IsAltDown());
|
| + accelerator.set_type(key.type());
|
| + focus_manager->accelerator_manager()->set_last_event(accelerator);
|
| }
|
|
|
| ////////////////////////////////////////////////////////////////////////////////
|
|
|