| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "ash/accelerators/accelerator_controller.h" | 5 #include "ash/accelerators/accelerator_controller.h" |
| 6 #include "ash/shell.h" | 6 #include "ash/shell.h" |
| 7 #include "ash/shell_delegate.h" | 7 #include "ash/shell_delegate.h" |
| 8 #include "ash/shell_window_ids.h" | 8 #include "ash/shell_window_ids.h" |
| 9 #include "ash/test/ash_test_base.h" | 9 #include "ash/test/ash_test_base.h" |
| 10 #include "base/bind.h" | 10 #include "base/bind.h" |
| 11 #include "base/event_types.h" | 11 #include "base/event_types.h" |
| 12 #include "base/message_loop.h" | 12 #include "base/message_loop.h" |
| 13 #include "ui/aura/client/dispatcher_client.h" | 13 #include "ui/aura/client/dispatcher_client.h" |
| 14 #include "ui/aura/root_window.h" | 14 #include "ui/aura/root_window.h" |
| 15 #include "ui/aura/test/test_windows.h" | 15 #include "ui/aura/test/test_windows.h" |
| 16 #include "ui/aura/window.h" | 16 #include "ui/aura/window.h" |
| 17 #include "ui/base/accelerators/accelerator.h" | 17 #include "ui/base/accelerators/accelerator.h" |
| 18 #include "ui/base/events.h" |
| 18 | 19 |
| 19 #if defined(USE_X11) | 20 #if defined(USE_X11) |
| 20 #include <X11/Xlib.h> | 21 #include <X11/Xlib.h> |
| 21 #include "ui/base/x/x11_util.h" | 22 #include "ui/base/x/x11_util.h" |
| 22 #endif // USE_X11 | 23 #endif // USE_X11 |
| 23 | 24 |
| 24 namespace ash { | 25 namespace ash { |
| 25 namespace test { | 26 namespace test { |
| 26 | 27 |
| 27 namespace { | 28 namespace { |
| 28 | 29 |
| 29 class MockDispatcher : public MessageLoop::Dispatcher { | 30 class MockDispatcher : public MessageLoop::Dispatcher { |
| 30 public: | 31 public: |
| 31 MockDispatcher() : num_key_events_dispatched_(0) { | 32 MockDispatcher() : num_key_events_dispatched_(0) { |
| 32 } | 33 } |
| 33 | 34 |
| 34 int num_key_events_dispatched() { return num_key_events_dispatched_; } | 35 int num_key_events_dispatched() { return num_key_events_dispatched_; } |
| 35 | 36 |
| 36 #if defined(OS_WIN) | 37 #if defined(OS_WIN) || defined(USE_X11) |
| 37 virtual bool Dispatch(const MSG& msg) OVERRIDE { | 38 virtual bool Dispatch(const base::NativeEvent& event) OVERRIDE { |
| 38 if (msg.message == WM_KEYUP) | 39 if (ui::EventTypeFromNative(event) == ui::ET_KEY_RELEASED) |
| 39 num_key_events_dispatched_++; | 40 num_key_events_dispatched_++; |
| 40 return !ui::IsNoopEvent(msg); | 41 return !ui::IsNoopEvent(event); |
| 41 } | 42 } |
| 42 #elif defined(USE_X11) | 43 #endif // defined(OS_WIN) || defined(USE_X11) |
| 43 virtual base::MessagePumpDispatcher::DispatchStatus Dispatch( | |
| 44 XEvent* xev) OVERRIDE { | |
| 45 if (xev->type == KeyRelease) | |
| 46 num_key_events_dispatched_++; | |
| 47 return ui::IsNoopEvent(xev) ? MessagePumpDispatcher::EVENT_QUIT : | |
| 48 MessagePumpDispatcher::EVENT_IGNORED; | |
| 49 } | |
| 50 #endif | |
| 51 | 44 |
| 52 private: | 45 private: |
| 53 int num_key_events_dispatched_; | 46 int num_key_events_dispatched_; |
| 54 }; | 47 }; |
| 55 | 48 |
| 56 class TestTarget : public ui::AcceleratorTarget { | 49 class TestTarget : public ui::AcceleratorTarget { |
| 57 public: | 50 public: |
| 58 TestTarget() : accelerator_pressed_count_(0) { | 51 TestTarget() : accelerator_pressed_count_(0) { |
| 59 } | 52 } |
| 60 virtual ~TestTarget() { | 53 virtual ~TestTarget() { |
| (...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 168 aura::client::GetDispatcherClient(root_window)->RunWithDispatcher( | 161 aura::client::GetDispatcherClient(root_window)->RunWithDispatcher( |
| 169 &inner_dispatcher, | 162 &inner_dispatcher, |
| 170 root_window, | 163 root_window, |
| 171 true /* nestable_tasks_allowed */); | 164 true /* nestable_tasks_allowed */); |
| 172 EXPECT_EQ(0, inner_dispatcher.num_key_events_dispatched()); | 165 EXPECT_EQ(0, inner_dispatcher.num_key_events_dispatched()); |
| 173 EXPECT_EQ(1, target.accelerator_pressed_count()); | 166 EXPECT_EQ(1, target.accelerator_pressed_count()); |
| 174 } | 167 } |
| 175 | 168 |
| 176 } // namespace test | 169 } // namespace test |
| 177 } // namespace ash | 170 } // namespace ash |
| OLD | NEW |