1 // Copyright 2014 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #include "ash/wm/cursor_manager_chromeos.h" 6 7 #include "base/logging.h" 8 #include "ui/keyboard/keyboard_util.h" 9 #include "ui/wm/core/cursor_manager.h" 10 #include "ui/wm/core/native_cursor_manager.h" 11 12 namespace ash { 13 CursorManager(scoped_ptr<::wm::NativeCursorManager> delegate)14CursorManager::CursorManager( 15 scoped_ptr< ::wm::NativeCursorManager> delegate) 16 : ::wm::CursorManager(delegate.Pass()) { 17 } 18 ~CursorManager()19CursorManager::~CursorManager() { 20 } 21 ShouldHideCursorOnKeyEvent(const ui::KeyEvent & event) const22bool CursorManager::ShouldHideCursorOnKeyEvent( 23 const ui::KeyEvent& event) const { 24 // Clicking on a key when the accessibility virtual keyboard is enabled should 25 // not hide the cursor. 26 if (keyboard::GetAccessibilityKeyboardEnabled()) 27 return false; 28 // All alt and control key commands are ignored. 29 if (event.IsAltDown() || event.IsControlDown()) 30 return false; 31 32 ui::KeyboardCode code = event.key_code(); 33 if (code >= ui::VKEY_F1 && code <= ui::VKEY_F24) 34 return false; 35 if (code >= ui::VKEY_BROWSER_BACK && code <= ui::VKEY_MEDIA_LAUNCH_APP2) 36 return false; 37 switch (code) { 38 // Modifiers. 39 case ui::VKEY_SHIFT: 40 case ui::VKEY_CONTROL: 41 case ui::VKEY_MENU: 42 // Search key == VKEY_LWIN. 43 case ui::VKEY_LWIN: 44 case ui::VKEY_WLAN: 45 case ui::VKEY_POWER: 46 case ui::VKEY_BRIGHTNESS_DOWN: 47 case ui::VKEY_BRIGHTNESS_UP: 48 case ui::VKEY_KBD_BRIGHTNESS_UP: 49 case ui::VKEY_KBD_BRIGHTNESS_DOWN: 50 return false; 51 default: 52 return true; 53 } 54 } 55 } // namespace ash 56