| Index: ui/wm/core/nested_accelerator_dispatcher_win.cc
|
| diff --git a/ui/wm/core/nested_accelerator_dispatcher_win.cc b/ui/wm/core/nested_accelerator_dispatcher_win.cc
|
| index a6a5bd9d6642813f583464ad9ae917cfdfb87139..a810bb9d88e85e2d0f83debde81709af37c5d46f 100644
|
| --- a/ui/wm/core/nested_accelerator_dispatcher_win.cc
|
| +++ b/ui/wm/core/nested_accelerator_dispatcher_win.cc
|
| @@ -7,7 +7,9 @@
|
| #include "base/memory/scoped_ptr.h"
|
| #include "base/message_loop/message_pump_dispatcher.h"
|
| #include "base/run_loop.h"
|
| +#include "ui/base/accelerators/accelerator.h"
|
| #include "ui/events/event.h"
|
| +#include "ui/wm/core/accelerator_filter.h"
|
| #include "ui/wm/core/nested_accelerator_delegate.h"
|
|
|
| using base::MessagePumpDispatcher;
|
| @@ -41,11 +43,16 @@ class NestedAcceleratorDispatcherWin : public NestedAcceleratorDispatcher,
|
| virtual uint32_t Dispatch(const MSG& event) OVERRIDE {
|
| if (IsKeyEvent(event)) {
|
| ui::KeyEvent key_event(event, false);
|
| - if (!delegate_->ShouldProcessEventNow(key_event))
|
| - return POST_DISPATCH_QUIT_LOOP;
|
| -
|
| - if (delegate_->ProcessEvent(key_event))
|
| - return POST_DISPATCH_NONE;
|
| + ui::Accelerator accelerator = CreateAcceleratorFromKeyEvent(key_event);
|
| +
|
| + switch (delegate_->ProcessAccelerator(accelerator)) {
|
| + case NestedAcceleratorDelegate::RESULT_PROCESS_LATER:
|
| + return POST_DISPATCH_QUIT_LOOP;
|
| + case NestedAcceleratorDelegate::RESULT_PROCESSED:
|
| + return POST_DISPATCH_NONE;
|
| + case NestedAcceleratorDelegate::RESULT_NOT_PROCESSED:
|
| + break;
|
| + }
|
| }
|
|
|
| return nested_dispatcher_ ? nested_dispatcher_->Dispatch(event)
|
|
|