| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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/sticky_keys/sticky_keys_controller.h" | 5 #include "ash/sticky_keys/sticky_keys_controller.h" |
| 6 | 6 |
| 7 #include <X11/Xlib.h> | 7 #include <X11/Xlib.h> |
| 8 #undef None | 8 #undef None |
| 9 #undef Bool | 9 #undef Bool |
| 10 #undef RootWindow | 10 #undef RootWindow |
| (...skipping 233 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 244 | 244 |
| 245 void SendActivateStickyKeyPattern(StickyKeysHandler* handler, | 245 void SendActivateStickyKeyPattern(StickyKeysHandler* handler, |
| 246 ui::KeyboardCode key_code) { | 246 ui::KeyboardCode key_code) { |
| 247 scoped_ptr<ui::KeyEvent> ev; | 247 scoped_ptr<ui::KeyEvent> ev; |
| 248 ev.reset(GenerateKey(true, key_code)); | 248 ev.reset(GenerateKey(true, key_code)); |
| 249 handler->HandleKeyEvent(ev.get()); | 249 handler->HandleKeyEvent(ev.get()); |
| 250 ev.reset(GenerateKey(false, key_code)); | 250 ev.reset(GenerateKey(false, key_code)); |
| 251 handler->HandleKeyEvent(ev.get()); | 251 handler->HandleKeyEvent(ev.get()); |
| 252 } | 252 } |
| 253 | 253 |
| 254 void SendActivateStickyKeyPattern(aura::RootWindowHostDelegate* delegate, | 254 void SendActivateStickyKeyPattern(aura::WindowTreeHostDelegate* delegate, |
| 255 ui::KeyboardCode key_code) { | 255 ui::KeyboardCode key_code) { |
| 256 scoped_ptr<ui::KeyEvent> ev; | 256 scoped_ptr<ui::KeyEvent> ev; |
| 257 ev.reset(GenerateKey(true, key_code)); | 257 ev.reset(GenerateKey(true, key_code)); |
| 258 delegate->OnHostKeyEvent(ev.get()); | 258 delegate->OnHostKeyEvent(ev.get()); |
| 259 ev.reset(GenerateKey(false, key_code)); | 259 ev.reset(GenerateKey(false, key_code)); |
| 260 delegate->OnHostKeyEvent(ev.get()); | 260 delegate->OnHostKeyEvent(ev.get()); |
| 261 } | 261 } |
| 262 | 262 |
| 263 aura::Window* target() { return target_; } | 263 aura::Window* target() { return target_; } |
| 264 | 264 |
| (...skipping 484 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 749 mev.reset(GenerateSynthesizedMouseEvent(false)); | 749 mev.reset(GenerateSynthesizedMouseEvent(false)); |
| 750 sticky_key.HandleMouseEvent(mev.get()); | 750 sticky_key.HandleMouseEvent(mev.get()); |
| 751 EXPECT_TRUE(mev->flags() & ui::EF_CONTROL_DOWN); | 751 EXPECT_TRUE(mev->flags() & ui::EF_CONTROL_DOWN); |
| 752 EXPECT_EQ(StickyKeysHandler::DISABLED, sticky_key.current_state()); | 752 EXPECT_EQ(StickyKeysHandler::DISABLED, sticky_key.current_state()); |
| 753 } | 753 } |
| 754 | 754 |
| 755 TEST_F(StickyKeysTest, KeyEventDispatchImpl) { | 755 TEST_F(StickyKeysTest, KeyEventDispatchImpl) { |
| 756 // Test the actual key event dispatch implementation. | 756 // Test the actual key event dispatch implementation. |
| 757 EventBuffer buffer; | 757 EventBuffer buffer; |
| 758 ScopedVector<ui::Event> events; | 758 ScopedVector<ui::Event> events; |
| 759 aura::RootWindowHostDelegate* delegate = Shell::GetPrimaryRootWindow() | 759 aura::WindowTreeHostDelegate* delegate = Shell::GetPrimaryRootWindow() |
| 760 ->GetDispatcher()->AsRootWindowHostDelegate(); | 760 ->GetDispatcher()->AsWindowTreeHostDelegate(); |
| 761 Shell::GetInstance()->AddPreTargetHandler(&buffer); | 761 Shell::GetInstance()->AddPreTargetHandler(&buffer); |
| 762 Shell::GetInstance()->sticky_keys_controller()->Enable(true); | 762 Shell::GetInstance()->sticky_keys_controller()->Enable(true); |
| 763 | 763 |
| 764 SendActivateStickyKeyPattern(delegate, ui::VKEY_CONTROL); | 764 SendActivateStickyKeyPattern(delegate, ui::VKEY_CONTROL); |
| 765 scoped_ptr<ui::KeyEvent> ev; | 765 scoped_ptr<ui::KeyEvent> ev; |
| 766 buffer.PopEvents(&events); | 766 buffer.PopEvents(&events); |
| 767 | 767 |
| 768 // Test key press event is correctly modified and modifier release | 768 // Test key press event is correctly modified and modifier release |
| 769 // event is sent. | 769 // event is sent. |
| 770 ev.reset(GenerateKey(true, ui::VKEY_C)); | 770 ev.reset(GenerateKey(true, ui::VKEY_C)); |
| (...skipping 17 matching lines...) Expand all Loading... |
| 788 static_cast<ui::KeyEvent*>(events[0])->key_code()); | 788 static_cast<ui::KeyEvent*>(events[0])->key_code()); |
| 789 EXPECT_FALSE(events[0]->flags() & ui::EF_CONTROL_DOWN); | 789 EXPECT_FALSE(events[0]->flags() & ui::EF_CONTROL_DOWN); |
| 790 | 790 |
| 791 Shell::GetInstance()->RemovePreTargetHandler(&buffer); | 791 Shell::GetInstance()->RemovePreTargetHandler(&buffer); |
| 792 } | 792 } |
| 793 | 793 |
| 794 TEST_F(StickyKeysTest, MouseEventDispatchImpl) { | 794 TEST_F(StickyKeysTest, MouseEventDispatchImpl) { |
| 795 // Test the actual sticky mouse event dispatch implementation. | 795 // Test the actual sticky mouse event dispatch implementation. |
| 796 EventBuffer buffer; | 796 EventBuffer buffer; |
| 797 ScopedVector<ui::Event> events; | 797 ScopedVector<ui::Event> events; |
| 798 aura::RootWindowHostDelegate* delegate = Shell::GetPrimaryRootWindow() | 798 aura::WindowTreeHostDelegate* delegate = Shell::GetPrimaryRootWindow() |
| 799 ->GetDispatcher()->AsRootWindowHostDelegate(); | 799 ->GetDispatcher()->AsWindowTreeHostDelegate(); |
| 800 Shell::GetInstance()->AddPreTargetHandler(&buffer); | 800 Shell::GetInstance()->AddPreTargetHandler(&buffer); |
| 801 Shell::GetInstance()->sticky_keys_controller()->Enable(true); | 801 Shell::GetInstance()->sticky_keys_controller()->Enable(true); |
| 802 | 802 |
| 803 scoped_ptr<ui::MouseEvent> ev; | 803 scoped_ptr<ui::MouseEvent> ev; |
| 804 SendActivateStickyKeyPattern(delegate, ui::VKEY_CONTROL); | 804 SendActivateStickyKeyPattern(delegate, ui::VKEY_CONTROL); |
| 805 buffer.PopEvents(&events); | 805 buffer.PopEvents(&events); |
| 806 | 806 |
| 807 // Test mouse press event is correctly modified. | 807 // Test mouse press event is correctly modified. |
| 808 ev.reset(GenerateMouseEvent(true)); | 808 ev.reset(GenerateMouseEvent(true)); |
| 809 delegate->OnHostMouseEvent(ev.get()); | 809 delegate->OnHostMouseEvent(ev.get()); |
| (...skipping 14 matching lines...) Expand all Loading... |
| 824 EXPECT_EQ(ui::VKEY_CONTROL, | 824 EXPECT_EQ(ui::VKEY_CONTROL, |
| 825 static_cast<ui::KeyEvent*>(events[1])->key_code()); | 825 static_cast<ui::KeyEvent*>(events[1])->key_code()); |
| 826 | 826 |
| 827 Shell::GetInstance()->RemovePreTargetHandler(&buffer); | 827 Shell::GetInstance()->RemovePreTargetHandler(&buffer); |
| 828 } | 828 } |
| 829 | 829 |
| 830 TEST_F(StickyKeysTest, MouseWheelEventDispatchImpl) { | 830 TEST_F(StickyKeysTest, MouseWheelEventDispatchImpl) { |
| 831 // Test the actual mouse wheel event dispatch implementation. | 831 // Test the actual mouse wheel event dispatch implementation. |
| 832 EventBuffer buffer; | 832 EventBuffer buffer; |
| 833 ScopedVector<ui::Event> events; | 833 ScopedVector<ui::Event> events; |
| 834 aura::RootWindowHostDelegate* delegate = Shell::GetPrimaryRootWindow() | 834 aura::WindowTreeHostDelegate* delegate = Shell::GetPrimaryRootWindow() |
| 835 ->GetDispatcher()->AsRootWindowHostDelegate(); | 835 ->GetDispatcher()->AsWindowTreeHostDelegate(); |
| 836 Shell::GetInstance()->AddPreTargetHandler(&buffer); | 836 Shell::GetInstance()->AddPreTargetHandler(&buffer); |
| 837 Shell::GetInstance()->sticky_keys_controller()->Enable(true); | 837 Shell::GetInstance()->sticky_keys_controller()->Enable(true); |
| 838 | 838 |
| 839 scoped_ptr<ui::MouseWheelEvent> ev; | 839 scoped_ptr<ui::MouseWheelEvent> ev; |
| 840 SendActivateStickyKeyPattern(delegate, ui::VKEY_CONTROL); | 840 SendActivateStickyKeyPattern(delegate, ui::VKEY_CONTROL); |
| 841 buffer.PopEvents(&events); | 841 buffer.PopEvents(&events); |
| 842 | 842 |
| 843 // Test positive mouse wheel event is correctly modified and modifier release | 843 // Test positive mouse wheel event is correctly modified and modifier release |
| 844 // event is sent. | 844 // event is sent. |
| 845 ev.reset(GenerateMouseWheelEvent(ui::MouseWheelEvent::kWheelDelta)); | 845 ev.reset(GenerateMouseWheelEvent(ui::MouseWheelEvent::kWheelDelta)); |
| (...skipping 22 matching lines...) Expand all Loading... |
| 868 static_cast<ui::MouseWheelEvent*>(events[0])->y_offset()); | 868 static_cast<ui::MouseWheelEvent*>(events[0])->y_offset()); |
| 869 EXPECT_TRUE(events[0]->flags() & ui::EF_CONTROL_DOWN); | 869 EXPECT_TRUE(events[0]->flags() & ui::EF_CONTROL_DOWN); |
| 870 EXPECT_EQ(ui::ET_KEY_RELEASED, events[1]->type()); | 870 EXPECT_EQ(ui::ET_KEY_RELEASED, events[1]->type()); |
| 871 EXPECT_EQ(ui::VKEY_CONTROL, | 871 EXPECT_EQ(ui::VKEY_CONTROL, |
| 872 static_cast<ui::KeyEvent*>(events[1])->key_code()); | 872 static_cast<ui::KeyEvent*>(events[1])->key_code()); |
| 873 | 873 |
| 874 Shell::GetInstance()->RemovePreTargetHandler(&buffer); | 874 Shell::GetInstance()->RemovePreTargetHandler(&buffer); |
| 875 } | 875 } |
| 876 | 876 |
| 877 } // namespace ash | 877 } // namespace ash |
| OLD | NEW |