Chromium Code Reviews| 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/common/accelerators/accelerator_controller.h" | 5 #include "ash/common/accelerators/accelerator_controller.h" |
| 6 | 6 |
| 7 #include "ash/common/accelerators/accelerator_commands.h" | 7 #include "ash/common/accelerators/accelerator_commands.h" |
| 8 #include "ash/common/accelerators/accelerator_controller_delegate.h" | 8 #include "ash/common/accelerators/accelerator_controller_delegate.h" |
| 9 #include "ash/common/accelerators/debug_commands.h" | 9 #include "ash/common/accelerators/debug_commands.h" |
| 10 #include "ash/common/accessibility_delegate.h" | 10 #include "ash/common/accessibility_delegate.h" |
| (...skipping 15 matching lines...) Expand all Loading... | |
| 26 #include "ash/common/wm/window_cycle_controller.h" | 26 #include "ash/common/wm/window_cycle_controller.h" |
| 27 #include "ash/common/wm/window_positioning_utils.h" | 27 #include "ash/common/wm/window_positioning_utils.h" |
| 28 #include "ash/common/wm/window_state.h" | 28 #include "ash/common/wm/window_state.h" |
| 29 #include "ash/common/wm/wm_event.h" | 29 #include "ash/common/wm/wm_event.h" |
| 30 #include "ash/common/wm_shell.h" | 30 #include "ash/common/wm_shell.h" |
| 31 #include "ash/common/wm_window.h" | 31 #include "ash/common/wm_window.h" |
| 32 #include "base/metrics/histogram_macros.h" | 32 #include "base/metrics/histogram_macros.h" |
| 33 #include "base/metrics/user_metrics.h" | 33 #include "base/metrics/user_metrics.h" |
| 34 #include "ui/base/accelerators/accelerator.h" | 34 #include "ui/base/accelerators/accelerator.h" |
| 35 #include "ui/base/accelerators/accelerator_manager.h" | 35 #include "ui/base/accelerators/accelerator_manager.h" |
| 36 #include "ui/keyboard/keyboard_controller.h" | |
| 36 | 37 |
| 37 #if defined(OS_CHROMEOS) | 38 #if defined(OS_CHROMEOS) |
| 38 #include "chromeos/dbus/dbus_thread_manager.h" | 39 #include "chromeos/dbus/dbus_thread_manager.h" |
| 39 #include "chromeos/dbus/power_manager_client.h" | 40 #include "chromeos/dbus/power_manager_client.h" |
| 40 #include "ui/base/ime/chromeos/ime_keyboard.h" | 41 #include "ui/base/ime/chromeos/ime_keyboard.h" |
| 41 #include "ui/base/ime/chromeos/input_method_manager.h" | 42 #include "ui/base/ime/chromeos/input_method_manager.h" |
| 42 #endif // defined(OS_CHROMEOS) | 43 #endif // defined(OS_CHROMEOS) |
| 43 | 44 |
| 44 namespace ash { | 45 namespace ash { |
| 45 namespace { | 46 namespace { |
| (...skipping 870 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 916 } | 917 } |
| 917 } | 918 } |
| 918 | 919 |
| 919 bool AcceleratorController::ShouldActionConsumeKeyEvent( | 920 bool AcceleratorController::ShouldActionConsumeKeyEvent( |
| 920 AcceleratorAction action) { | 921 AcceleratorAction action) { |
| 921 // Adding new exceptions is *STRONGLY* discouraged. | 922 // Adding new exceptions is *STRONGLY* discouraged. |
| 922 return true; | 923 return true; |
| 923 } | 924 } |
| 924 | 925 |
| 925 AcceleratorController::AcceleratorProcessingRestriction | 926 AcceleratorController::AcceleratorProcessingRestriction |
| 926 AcceleratorController::GetAcceleratorProcessingRestriction(int action) { | 927 AcceleratorController::GetAcceleratorProcessingRestriction(int action) { |
|
varkha
2016/08/22 20:59:23
Maybe deserves a followup. Is there a good reason
Evan Stade
2016/08/22 21:35:04
dunno, seems tangential to this CL though.
| |
| 927 if (WmShell::Get()->IsPinned() && | 928 WmShell* wm_shell = WmShell::Get(); |
| 929 if (wm_shell->IsPinned() && | |
| 928 actions_allowed_in_pinned_mode_.find(action) == | 930 actions_allowed_in_pinned_mode_.find(action) == |
| 929 actions_allowed_in_pinned_mode_.end()) { | 931 actions_allowed_in_pinned_mode_.end()) { |
| 930 return RESTRICTION_PREVENT_PROCESSING_AND_PROPAGATION; | 932 return RESTRICTION_PREVENT_PROCESSING_AND_PROPAGATION; |
| 931 } | 933 } |
| 932 WmShell* wm_shell = WmShell::Get(); | |
| 933 if (!wm_shell->GetSessionStateDelegate()->IsActiveUserSessionStarted() && | 934 if (!wm_shell->GetSessionStateDelegate()->IsActiveUserSessionStarted() && |
| 934 actions_allowed_at_login_screen_.find(action) == | 935 actions_allowed_at_login_screen_.find(action) == |
| 935 actions_allowed_at_login_screen_.end()) { | 936 actions_allowed_at_login_screen_.end()) { |
| 936 return RESTRICTION_PREVENT_PROCESSING; | 937 return RESTRICTION_PREVENT_PROCESSING; |
| 937 } | 938 } |
| 938 if (wm_shell->GetSessionStateDelegate()->IsScreenLocked() && | 939 if (wm_shell->GetSessionStateDelegate()->IsScreenLocked() && |
| 939 actions_allowed_at_lock_screen_.find(action) == | 940 actions_allowed_at_lock_screen_.find(action) == |
| 940 actions_allowed_at_lock_screen_.end()) { | 941 actions_allowed_at_lock_screen_.end()) { |
| 941 return RESTRICTION_PREVENT_PROCESSING; | 942 return RESTRICTION_PREVENT_PROCESSING; |
| 942 } | 943 } |
| (...skipping 10 matching lines...) Expand all Loading... | |
| 953 // Alt+Tab that would cause an undesired effect in the modal window by | 954 // Alt+Tab that would cause an undesired effect in the modal window by |
| 954 // cycling through its window elements. | 955 // cycling through its window elements. |
| 955 return RESTRICTION_PREVENT_PROCESSING_AND_PROPAGATION; | 956 return RESTRICTION_PREVENT_PROCESSING_AND_PROPAGATION; |
| 956 } | 957 } |
| 957 if (wm_shell->mru_window_tracker()->BuildMruWindowList().empty() && | 958 if (wm_shell->mru_window_tracker()->BuildMruWindowList().empty() && |
| 958 actions_needing_window_.find(action) != actions_needing_window_.end()) { | 959 actions_needing_window_.find(action) != actions_needing_window_.end()) { |
| 959 wm_shell->accessibility_delegate()->TriggerAccessibilityAlert( | 960 wm_shell->accessibility_delegate()->TriggerAccessibilityAlert( |
| 960 A11Y_ALERT_WINDOW_NEEDED); | 961 A11Y_ALERT_WINDOW_NEEDED); |
| 961 return RESTRICTION_PREVENT_PROCESSING_AND_PROPAGATION; | 962 return RESTRICTION_PREVENT_PROCESSING_AND_PROPAGATION; |
| 962 } | 963 } |
| 964 // Don't do anything when Alt+Tab comes from a virtual keyboard. Touchscreen | |
| 965 // users have better window switching options. See http://crbug.com/638269 | |
| 966 keyboard::KeyboardController* keyboard_controller = | |
| 967 keyboard::KeyboardController::GetInstance(); | |
| 968 if (keyboard_controller && keyboard_controller->keyboard_visible()) | |
| 969 return RESTRICTION_PREVENT_PROCESSING; | |
|
oshima
2016/08/18 23:53:31
This disable alt-tab even if I used the real keybo
varkha
2016/08/22 20:59:23
Maybe we can plumb through a ui::Accelerator param
bshe
2016/08/22 21:02:56
If alt + tab is disabled for VK, it is probably be
Evan Stade
2016/08/22 21:35:04
seems very not worth it. Why is a user using both
Evan Stade
2016/08/22 21:35:04
How would one do that? By special casing to ignore
| |
| 970 | |
| 963 return RESTRICTION_NONE; | 971 return RESTRICTION_NONE; |
| 964 } | 972 } |
| 965 | 973 |
| 966 } // namespace ash | 974 } // namespace ash |
| OLD | NEW |