Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(89)

Side by Side Diff: ash/accelerators/accelerator_controller.cc

Issue 77453013: Add an accessibility alert for incorrect use of some accelerators. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix nits Created 7 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <cmath> 8 #include <cmath>
9 #include <iostream> 9 #include <iostream>
10 #include <string> 10 #include <string>
(...skipping 26 matching lines...) Expand all
37 #include "ash/shell_window_ids.h" 37 #include "ash/shell_window_ids.h"
38 #include "ash/system/brightness_control_delegate.h" 38 #include "ash/system/brightness_control_delegate.h"
39 #include "ash/system/keyboard_brightness/keyboard_brightness_control_delegate.h" 39 #include "ash/system/keyboard_brightness/keyboard_brightness_control_delegate.h"
40 #include "ash/system/status_area_widget.h" 40 #include "ash/system/status_area_widget.h"
41 #include "ash/system/tray/system_tray.h" 41 #include "ash/system/tray/system_tray.h"
42 #include "ash/system/tray/system_tray_delegate.h" 42 #include "ash/system/tray/system_tray_delegate.h"
43 #include "ash/system/tray/system_tray_notifier.h" 43 #include "ash/system/tray/system_tray_notifier.h"
44 #include "ash/system/web_notification/web_notification_tray.h" 44 #include "ash/system/web_notification/web_notification_tray.h"
45 #include "ash/touch/touch_hud_debug.h" 45 #include "ash/touch/touch_hud_debug.h"
46 #include "ash/volume_control_delegate.h" 46 #include "ash/volume_control_delegate.h"
47 #include "ash/wm/mru_window_tracker.h"
47 #include "ash/wm/overview/window_selector_controller.h" 48 #include "ash/wm/overview/window_selector_controller.h"
48 #include "ash/wm/partial_screenshot_view.h" 49 #include "ash/wm/partial_screenshot_view.h"
49 #include "ash/wm/power_button_controller.h" 50 #include "ash/wm/power_button_controller.h"
50 #include "ash/wm/window_cycle_controller.h" 51 #include "ash/wm/window_cycle_controller.h"
51 #include "ash/wm/window_state.h" 52 #include "ash/wm/window_state.h"
52 #include "ash/wm/window_util.h" 53 #include "ash/wm/window_util.h"
53 #include "ash/wm/workspace/snap_sizer.h" 54 #include "ash/wm/workspace/snap_sizer.h"
54 #include "base/bind.h" 55 #include "base/bind.h"
55 #include "base/command_line.h" 56 #include "base/command_line.h"
56 #include "content/public/browser/gpu_data_manager.h" 57 #include "content/public/browser/gpu_data_manager.h"
(...skipping 372 matching lines...) Expand 10 before | Expand all | Expand 10 after
429 for (size_t i = 0; i < kActionsAllowedAtLockScreenLength; ++i) 430 for (size_t i = 0; i < kActionsAllowedAtLockScreenLength; ++i)
430 actions_allowed_at_lock_screen_.insert(kActionsAllowedAtLockScreen[i]); 431 actions_allowed_at_lock_screen_.insert(kActionsAllowedAtLockScreen[i]);
431 for (size_t i = 0; i < kActionsAllowedAtModalWindowLength; ++i) 432 for (size_t i = 0; i < kActionsAllowedAtModalWindowLength; ++i)
432 actions_allowed_at_modal_window_.insert(kActionsAllowedAtModalWindow[i]); 433 actions_allowed_at_modal_window_.insert(kActionsAllowedAtModalWindow[i]);
433 for (size_t i = 0; i < kReservedActionsLength; ++i) 434 for (size_t i = 0; i < kReservedActionsLength; ++i)
434 reserved_actions_.insert(kReservedActions[i]); 435 reserved_actions_.insert(kReservedActions[i]);
435 for (size_t i = 0; i < kNonrepeatableActionsLength; ++i) 436 for (size_t i = 0; i < kNonrepeatableActionsLength; ++i)
436 nonrepeatable_actions_.insert(kNonrepeatableActions[i]); 437 nonrepeatable_actions_.insert(kNonrepeatableActions[i]);
437 for (size_t i = 0; i < kActionsAllowedInAppModeLength; ++i) 438 for (size_t i = 0; i < kActionsAllowedInAppModeLength; ++i)
438 actions_allowed_in_app_mode_.insert(kActionsAllowedInAppMode[i]); 439 actions_allowed_in_app_mode_.insert(kActionsAllowedInAppMode[i]);
440 for (size_t i = 0; i < kActionsNeedingWindowLength; ++i)
441 actions_needing_window_.insert(kActionsNeedingWindow[i]);
439 442
440 RegisterAccelerators(kAcceleratorData, kAcceleratorDataLength); 443 RegisterAccelerators(kAcceleratorData, kAcceleratorDataLength);
441 444
442 #if !defined(NDEBUG) 445 #if !defined(NDEBUG)
443 RegisterAccelerators(kDesktopAcceleratorData, kDesktopAcceleratorDataLength); 446 RegisterAccelerators(kDesktopAcceleratorData, kDesktopAcceleratorDataLength);
444 #endif 447 #endif
445 448
446 if (DebugShortcutsEnabled()) { 449 if (DebugShortcutsEnabled()) {
447 RegisterAccelerators(kDebugAcceleratorData, kDebugAcceleratorDataLength); 450 RegisterAccelerators(kDebugAcceleratorData, kDebugAcceleratorDataLength);
448 for (size_t i = 0; i < kReservedDebugActionsLength; ++i) 451 for (size_t i = 0; i < kReservedDebugActionsLength; ++i)
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
517 // and will not be passed to the modal window. This is important 520 // and will not be passed to the modal window. This is important
518 // for things like Alt+Tab that would cause an undesired effect 521 // for things like Alt+Tab that would cause an undesired effect
519 // in the modal window by cycling through its window elements. 522 // in the modal window by cycling through its window elements.
520 return true; 523 return true;
521 } 524 }
522 if (shell->delegate()->IsRunningInForcedAppMode() && 525 if (shell->delegate()->IsRunningInForcedAppMode() &&
523 actions_allowed_in_app_mode_.find(action) == 526 actions_allowed_in_app_mode_.find(action) ==
524 actions_allowed_in_app_mode_.end()) { 527 actions_allowed_in_app_mode_.end()) {
525 return false; 528 return false;
526 } 529 }
530 if (MruWindowTracker::BuildWindowList(false).empty() &&
531 actions_needing_window_.find(action) != actions_needing_window_.end()) {
532 Shell::GetInstance()->accessibility_delegate()->TriggerAccessibilityAlert(
533 A11Y_ALERT_WINDOW_NEEDED);
534 return true;
535 }
527 536
528 const ui::KeyboardCode key_code = accelerator.key_code(); 537 const ui::KeyboardCode key_code = accelerator.key_code();
529 // PerformAction() is performed from gesture controllers and passes 538 // PerformAction() is performed from gesture controllers and passes
530 // empty Accelerator() instance as the second argument. Such events 539 // empty Accelerator() instance as the second argument. Such events
531 // should never be suspended. 540 // should never be suspended.
532 const bool gesture_event = key_code == ui::VKEY_UNKNOWN; 541 const bool gesture_event = key_code == ui::VKEY_UNKNOWN;
533 542
534 // Ignore accelerators invoked as repeated (while holding a key for a long 543 // Ignore accelerators invoked as repeated (while holding a key for a long
535 // time, if their handling is nonrepeatable. 544 // time, if their handling is nonrepeatable.
536 if (nonrepeatable_actions_.find(action) != nonrepeatable_actions_.end() && 545 if (nonrepeatable_actions_.find(action) != nonrepeatable_actions_.end() &&
(...skipping 459 matching lines...) Expand 10 before | Expand all | Expand 10 after
996 keyboard_brightness_control_delegate) { 1005 keyboard_brightness_control_delegate) {
997 keyboard_brightness_control_delegate_ = 1006 keyboard_brightness_control_delegate_ =
998 keyboard_brightness_control_delegate.Pass(); 1007 keyboard_brightness_control_delegate.Pass();
999 } 1008 }
1000 1009
1001 bool AcceleratorController::CanHandleAccelerators() const { 1010 bool AcceleratorController::CanHandleAccelerators() const {
1002 return true; 1011 return true;
1003 } 1012 }
1004 1013
1005 } // namespace ash 1014 } // namespace ash
OLDNEW
« no previous file with comments | « ash/accelerators/accelerator_controller.h ('k') | ash/accelerators/accelerator_controller_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698