| Index: ui/wm/core/nested_accelerator_dispatcher_linux.cc
|
| diff --git a/ui/wm/core/nested_accelerator_dispatcher_linux.cc b/ui/wm/core/nested_accelerator_dispatcher_linux.cc
|
| index bf21d3f9ff5a3931ef9ab15ff87990d06cd3b05f..12340b66a7bf3c1a87e0e885af68ac7cb2f1f177 100644
|
| --- a/ui/wm/core/nested_accelerator_dispatcher_linux.cc
|
| +++ b/ui/wm/core/nested_accelerator_dispatcher_linux.cc
|
| @@ -6,10 +6,12 @@
|
|
|
| #include "base/memory/scoped_ptr.h"
|
| #include "base/run_loop.h"
|
| +#include "ui/base/accelerators/accelerator.h"
|
| #include "ui/events/event.h"
|
| #include "ui/events/platform/platform_event_dispatcher.h"
|
| #include "ui/events/platform/platform_event_source.h"
|
| #include "ui/events/platform/scoped_event_dispatcher.h"
|
| +#include "ui/wm/core/accelerator_filter.h"
|
| #include "ui/wm/core/nested_accelerator_delegate.h"
|
|
|
| #if defined(USE_X11)
|
| @@ -65,17 +67,21 @@ class NestedAcceleratorDispatcherLinux : public NestedAcceleratorDispatcher,
|
| virtual uint32_t DispatchEvent(const ui::PlatformEvent& event) OVERRIDE {
|
| if (IsKeyEvent(event)) {
|
| ui::KeyEvent key_event(event, false);
|
| - if (!delegate_->ShouldProcessEventNow(key_event)) {
|
| + ui::Accelerator accelerator = CreateAcceleratorFromKeyEvent(key_event);
|
| +
|
| + switch (delegate_->ProcessAccelerator(accelerator)) {
|
| + case NestedAcceleratorDelegate::RESULT_PROCESS_LATER:
|
| #if defined(USE_X11)
|
| - XPutBackEvent(event->xany.display, event);
|
| + XPutBackEvent(event->xany.display, event);
|
| #else
|
| - NOTIMPLEMENTED();
|
| + NOTIMPLEMENTED();
|
| #endif
|
| - return ui::POST_DISPATCH_NONE;
|
| + return ui::POST_DISPATCH_NONE;
|
| + case NestedAcceleratorDelegate::RESULT_PROCESSED:
|
| + return ui::POST_DISPATCH_NONE;
|
| + case NestedAcceleratorDelegate::RESULT_NOT_PROCESSED:
|
| + break;
|
| }
|
| -
|
| - if (delegate_->ProcessEvent(key_event))
|
| - return ui::POST_DISPATCH_NONE;
|
| }
|
| ui::PlatformEventDispatcher* prev = *restore_dispatcher_;
|
|
|
|
|