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 | 6 |
7 #include "ash/accelerators/accelerator_commands.h" | 7 #include "ash/accelerators/accelerator_commands.h" |
8 #include "ash/accelerators/accelerator_controller_delegate.h" | 8 #include "ash/accelerators/accelerator_controller_delegate.h" |
9 #include "ash/accelerators/debug_commands.h" | 9 #include "ash/accelerators/debug_commands.h" |
10 #include "ash/common/accessibility_delegate.h" | 10 #include "ash/common/accessibility_delegate.h" |
(...skipping 548 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
559 const ui::Accelerator& previous_accelerator = | 559 const ui::Accelerator& previous_accelerator = |
560 accelerator_history_->previous_accelerator(); | 560 accelerator_history_->previous_accelerator(); |
561 | 561 |
562 // True should be returned if running |action| does something. Otherwise, | 562 // True should be returned if running |action| does something. Otherwise, |
563 // false should be returned to give the web contents a chance at handling the | 563 // false should be returned to give the web contents a chance at handling the |
564 // accelerator. | 564 // accelerator. |
565 switch (action) { | 565 switch (action) { |
566 case DEBUG_PRINT_LAYER_HIERARCHY: | 566 case DEBUG_PRINT_LAYER_HIERARCHY: |
567 case DEBUG_PRINT_VIEW_HIERARCHY: | 567 case DEBUG_PRINT_VIEW_HIERARCHY: |
568 case DEBUG_PRINT_WINDOW_HIERARCHY: | 568 case DEBUG_PRINT_WINDOW_HIERARCHY: |
569 case DEBUG_TOGGLE_DESKTOP_BACKGROUND_MODE: | |
570 case DEBUG_TOGGLE_DEVICE_SCALE_FACTOR: | |
571 case DEBUG_TOGGLE_ROOT_WINDOW_FULL_SCREEN: | |
572 case DEBUG_TOGGLE_SHOW_DEBUG_BORDERS: | |
573 case DEBUG_TOGGLE_SHOW_FPS_COUNTER: | |
574 case DEBUG_TOGGLE_SHOW_PAINT_RECTS: | |
575 return debug::DebugAcceleratorsEnabled(); | 569 return debug::DebugAcceleratorsEnabled(); |
576 case NEXT_IME: | 570 case NEXT_IME: |
577 return CanHandleNextIme(ime_control_delegate_.get()); | 571 return CanHandleNextIme(ime_control_delegate_.get()); |
578 case PREVIOUS_IME: | 572 case PREVIOUS_IME: |
579 return CanHandlePreviousIme(ime_control_delegate_.get()); | 573 return CanHandlePreviousIme(ime_control_delegate_.get()); |
580 case SWITCH_IME: | 574 case SWITCH_IME: |
581 return CanHandleSwitchIme(ime_control_delegate_.get(), accelerator); | 575 return CanHandleSwitchIme(ime_control_delegate_.get(), accelerator); |
582 case WINDOW_CYCLE_SNAP_DOCK_LEFT: | 576 case WINDOW_CYCLE_SNAP_DOCK_LEFT: |
583 case WINDOW_CYCLE_SNAP_DOCK_RIGHT: | 577 case WINDOW_CYCLE_SNAP_DOCK_RIGHT: |
584 return CanHandleWindowSnapOrDock(); | 578 return CanHandleWindowSnapOrDock(); |
585 case WINDOW_POSITION_CENTER: | 579 case WINDOW_POSITION_CENTER: |
586 return CanHandlePositionCenter(); | 580 return CanHandlePositionCenter(); |
587 #if defined(OS_CHROMEOS) | 581 #if defined(OS_CHROMEOS) |
588 case DEBUG_ADD_REMOVE_DISPLAY: | |
589 case DEBUG_SHOW_TOAST: | 582 case DEBUG_SHOW_TOAST: |
590 case DEBUG_TOGGLE_TOUCH_PAD: | 583 case DEBUG_TOGGLE_TOUCH_PAD: |
591 case DEBUG_TOGGLE_TOUCH_SCREEN: | 584 case DEBUG_TOGGLE_TOUCH_SCREEN: |
592 case DEBUG_TOGGLE_TOUCH_VIEW: | 585 case DEBUG_TOGGLE_TOUCH_VIEW: |
593 case DEBUG_TOGGLE_UNIFIED_DESKTOP: | |
594 return debug::DebugAcceleratorsEnabled(); | 586 return debug::DebugAcceleratorsEnabled(); |
595 case DISABLE_CAPS_LOCK: | 587 case DISABLE_CAPS_LOCK: |
596 return CanHandleDisableCapsLock(previous_accelerator); | 588 return CanHandleDisableCapsLock(previous_accelerator); |
597 case LOCK_SCREEN: | 589 case LOCK_SCREEN: |
598 return CanHandleLock(); | 590 return CanHandleLock(); |
599 case SWITCH_TO_PREVIOUS_USER: | 591 case SWITCH_TO_PREVIOUS_USER: |
600 case SWITCH_TO_NEXT_USER: | 592 case SWITCH_TO_NEXT_USER: |
601 return CanHandleCycleUser(); | 593 return CanHandleCycleUser(); |
602 case TOGGLE_CAPS_LOCK: | 594 case TOGGLE_CAPS_LOCK: |
603 return CanHandleToggleCapsLock(accelerator, previous_accelerator); | 595 return CanHandleToggleCapsLock(accelerator, previous_accelerator); |
(...skipping 25 matching lines...) Expand all Loading... |
629 #else | 621 #else |
630 case DUMMY_FOR_RESERVED: | 622 case DUMMY_FOR_RESERVED: |
631 #endif | 623 #endif |
632 return true; | 624 return true; |
633 | 625 |
634 default: | 626 default: |
635 // Default switch is temporary until mash transition complete. Needed as | 627 // Default switch is temporary until mash transition complete. Needed as |
636 // some actions don't yet work with mash. | 628 // some actions don't yet work with mash. |
637 break; | 629 break; |
638 } | 630 } |
639 DCHECK(delegate_ && delegate_->HandlesAction(action)); | 631 return delegate_ && delegate_->HandlesAction(action) && |
640 return delegate_->CanPerformAction(action, accelerator, previous_accelerator); | 632 delegate_->CanPerformAction(action, accelerator, previous_accelerator); |
641 } | 633 } |
642 | 634 |
643 void AcceleratorController::PerformAction(AcceleratorAction action, | 635 void AcceleratorController::PerformAction(AcceleratorAction action, |
644 const ui::Accelerator& accelerator) { | 636 const ui::Accelerator& accelerator) { |
645 AcceleratorProcessingRestriction restriction = | 637 AcceleratorProcessingRestriction restriction = |
646 GetAcceleratorProcessingRestriction(action); | 638 GetAcceleratorProcessingRestriction(action); |
647 if (restriction != RESTRICTION_NONE) | 639 if (restriction != RESTRICTION_NONE) |
648 return; | 640 return; |
649 | 641 |
650 // If your accelerator invokes more than one line of code, please either | 642 // If your accelerator invokes more than one line of code, please either |
651 // implement it in your module's controller code or pull it into a HandleFoo() | 643 // implement it in your module's controller code or pull it into a HandleFoo() |
652 // function above. | 644 // function above. |
653 switch (action) { | 645 switch (action) { |
654 case CYCLE_BACKWARD_MRU: | 646 case CYCLE_BACKWARD_MRU: |
655 HandleCycleBackwardMRU(accelerator); | 647 HandleCycleBackwardMRU(accelerator); |
656 break; | 648 break; |
657 case CYCLE_FORWARD_MRU: | 649 case CYCLE_FORWARD_MRU: |
658 HandleCycleForwardMRU(accelerator); | 650 HandleCycleForwardMRU(accelerator); |
659 break; | 651 break; |
660 case DEBUG_PRINT_LAYER_HIERARCHY: | 652 case DEBUG_PRINT_LAYER_HIERARCHY: |
661 case DEBUG_PRINT_VIEW_HIERARCHY: | 653 case DEBUG_PRINT_VIEW_HIERARCHY: |
662 case DEBUG_PRINT_WINDOW_HIERARCHY: | 654 case DEBUG_PRINT_WINDOW_HIERARCHY: |
663 case DEBUG_TOGGLE_DESKTOP_BACKGROUND_MODE: | |
664 case DEBUG_TOGGLE_DEVICE_SCALE_FACTOR: | |
665 case DEBUG_TOGGLE_ROOT_WINDOW_FULL_SCREEN: | |
666 case DEBUG_TOGGLE_SHOW_DEBUG_BORDERS: | |
667 case DEBUG_TOGGLE_SHOW_FPS_COUNTER: | |
668 case DEBUG_TOGGLE_SHOW_PAINT_RECTS: | |
669 debug::PerformDebugActionIfEnabled(action); | 655 debug::PerformDebugActionIfEnabled(action); |
670 break; | 656 break; |
671 case EXIT: | 657 case EXIT: |
672 // UMA metrics are recorded in the handler. | 658 // UMA metrics are recorded in the handler. |
673 exit_warning_handler_.HandleAccelerator(); | 659 exit_warning_handler_.HandleAccelerator(); |
674 break; | 660 break; |
675 case FOCUS_NEXT_PANE: | 661 case FOCUS_NEXT_PANE: |
676 HandleRotatePaneFocus(FocusCycler::FORWARD); | 662 HandleRotatePaneFocus(FocusCycler::FORWARD); |
677 break; | 663 break; |
678 case FOCUS_PREVIOUS_PANE: | 664 case FOCUS_PREVIOUS_PANE: |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
726 delegate->HandleBrightnessDown(accelerator); | 712 delegate->HandleBrightnessDown(accelerator); |
727 break; | 713 break; |
728 } | 714 } |
729 case BRIGHTNESS_UP: { | 715 case BRIGHTNESS_UP: { |
730 BrightnessControlDelegate* delegate = | 716 BrightnessControlDelegate* delegate = |
731 WmShell::Get()->brightness_control_delegate(); | 717 WmShell::Get()->brightness_control_delegate(); |
732 if (delegate) | 718 if (delegate) |
733 delegate->HandleBrightnessUp(accelerator); | 719 delegate->HandleBrightnessUp(accelerator); |
734 break; | 720 break; |
735 } | 721 } |
736 case DEBUG_ADD_REMOVE_DISPLAY: | |
737 case DEBUG_SHOW_TOAST: | 722 case DEBUG_SHOW_TOAST: |
738 case DEBUG_TOGGLE_TOUCH_PAD: | 723 case DEBUG_TOGGLE_TOUCH_PAD: |
739 case DEBUG_TOGGLE_TOUCH_SCREEN: | 724 case DEBUG_TOGGLE_TOUCH_SCREEN: |
740 case DEBUG_TOGGLE_TOUCH_VIEW: | 725 case DEBUG_TOGGLE_TOUCH_VIEW: |
741 case DEBUG_TOGGLE_UNIFIED_DESKTOP: | |
742 debug::PerformDebugActionIfEnabled(action); | 726 debug::PerformDebugActionIfEnabled(action); |
743 break; | 727 break; |
744 case DISABLE_CAPS_LOCK: | 728 case DISABLE_CAPS_LOCK: |
745 HandleDisableCapsLock(); | 729 HandleDisableCapsLock(); |
746 break; | 730 break; |
747 case KEYBOARD_BRIGHTNESS_DOWN: { | 731 case KEYBOARD_BRIGHTNESS_DOWN: { |
748 KeyboardBrightnessControlDelegate* delegate = | 732 KeyboardBrightnessControlDelegate* delegate = |
749 WmShell::Get()->keyboard_brightness_control_delegate(); | 733 WmShell::Get()->keyboard_brightness_control_delegate(); |
750 if (delegate) | 734 if (delegate) |
751 delegate->HandleKeyboardBrightnessDown(accelerator); | 735 delegate->HandleKeyboardBrightnessDown(accelerator); |
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
843 if (wm_shell->mru_window_tracker()->BuildMruWindowList().empty() && | 827 if (wm_shell->mru_window_tracker()->BuildMruWindowList().empty() && |
844 actions_needing_window_.find(action) != actions_needing_window_.end()) { | 828 actions_needing_window_.find(action) != actions_needing_window_.end()) { |
845 wm_shell->accessibility_delegate()->TriggerAccessibilityAlert( | 829 wm_shell->accessibility_delegate()->TriggerAccessibilityAlert( |
846 A11Y_ALERT_WINDOW_NEEDED); | 830 A11Y_ALERT_WINDOW_NEEDED); |
847 return RESTRICTION_PREVENT_PROCESSING_AND_PROPAGATION; | 831 return RESTRICTION_PREVENT_PROCESSING_AND_PROPAGATION; |
848 } | 832 } |
849 return RESTRICTION_NONE; | 833 return RESTRICTION_NONE; |
850 } | 834 } |
851 | 835 |
852 } // namespace ash | 836 } // namespace ash |
OLD | NEW |