| 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 <algorithm> | 7 #include <algorithm> |
| 8 #include <cmath> | 8 #include <cmath> |
| 9 #include <string> | 9 #include <string> |
| 10 | 10 |
| 11 #include "ash/accelerators/accelerator_commands.h" | 11 #include "ash/accelerators/accelerator_commands.h" |
| 12 #include "ash/accelerators/debug_commands.h" | 12 #include "ash/accelerators/debug_commands.h" |
| 13 #include "ash/ash_switches.h" | 13 #include "ash/ash_switches.h" |
| 14 #include "ash/debug.h" | 14 #include "ash/debug.h" |
| 15 #include "ash/display/display_manager.h" | |
| 16 #include "ash/display/display_util.h" | |
| 17 #include "ash/display/window_tree_host_manager.h" | 15 #include "ash/display/window_tree_host_manager.h" |
| 18 #include "ash/focus_cycler.h" | 16 #include "ash/focus_cycler.h" |
| 19 #include "ash/gpu_support.h" | 17 #include "ash/gpu_support.h" |
| 20 #include "ash/ime_control_delegate.h" | 18 #include "ash/ime_control_delegate.h" |
| 21 #include "ash/magnifier/magnification_controller.h" | 19 #include "ash/magnifier/magnification_controller.h" |
| 22 #include "ash/magnifier/partial_magnification_controller.h" | 20 #include "ash/magnifier/partial_magnification_controller.h" |
| 23 #include "ash/media_delegate.h" | 21 #include "ash/media_delegate.h" |
| 24 #include "ash/multi_profile_uma.h" | 22 #include "ash/multi_profile_uma.h" |
| 25 #include "ash/new_window_delegate.h" | 23 #include "ash/new_window_delegate.h" |
| 26 #include "ash/root_window_controller.h" | 24 #include "ash/root_window_controller.h" |
| (...skipping 254 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 281 // right now, queue this animation so when it starts it picks up a neutral | 279 // right now, queue this animation so when it starts it picks up a neutral |
| 282 // rotation and position. Use replace so we only enqueue one at a time. | 280 // rotation and position. Use replace so we only enqueue one at a time. |
| 283 active_window->layer()->GetAnimator()-> | 281 active_window->layer()->GetAnimator()-> |
| 284 set_preemption_strategy(ui::LayerAnimator::REPLACE_QUEUED_ANIMATIONS); | 282 set_preemption_strategy(ui::LayerAnimator::REPLACE_QUEUED_ANIMATIONS); |
| 285 active_window->layer()->GetAnimator()->StartAnimation( | 283 active_window->layer()->GetAnimator()->StartAnimation( |
| 286 new ui::LayerAnimationSequence( | 284 new ui::LayerAnimationSequence( |
| 287 new ash::WindowRotation(360, active_window->layer()))); | 285 new ash::WindowRotation(360, active_window->layer()))); |
| 288 } | 286 } |
| 289 } | 287 } |
| 290 | 288 |
| 291 void HandleScaleReset() { | |
| 292 base::RecordAction(UserMetricsAction("Accel_Scale_Ui_Reset")); | |
| 293 DisplayManager* display_manager = Shell::GetInstance()->display_manager(); | |
| 294 | |
| 295 if (display_manager->IsInUnifiedMode()) { | |
| 296 const DisplayInfo& display_info = | |
| 297 display_manager->GetDisplayInfo(DisplayManager::kUnifiedDisplayId); | |
| 298 const std::vector<DisplayMode>& modes = display_info.display_modes(); | |
| 299 auto iter = | |
| 300 std::find_if(modes.begin(), modes.end(), | |
| 301 [](const DisplayMode& mode) { return mode.native; }); | |
| 302 display_manager->SetDisplayMode(DisplayManager::kUnifiedDisplayId, *iter); | |
| 303 } else { | |
| 304 SetDisplayUIScale(display_manager->GetDisplayIdForUIScaling(), 1.0f); | |
| 305 } | |
| 306 } | |
| 307 | |
| 308 bool CanHandleScaleUI() { | |
| 309 DisplayManager* display_manager = Shell::GetInstance()->display_manager(); | |
| 310 return display_manager->IsDisplayUIScalingEnabled() || | |
| 311 display_manager->IsInUnifiedMode(); | |
| 312 } | |
| 313 | |
| 314 void HandleScaleUI(bool up) { | |
| 315 if (up) | |
| 316 base::RecordAction(UserMetricsAction("Accel_Scale_Ui_Up")); | |
| 317 else | |
| 318 base::RecordAction(UserMetricsAction("Accel_Scale_Ui_Down")); | |
| 319 | |
| 320 DisplayManager* display_manager = Shell::GetInstance()->display_manager(); | |
| 321 | |
| 322 int64 display_id = display_manager->IsInUnifiedMode() | |
| 323 ? DisplayManager::kUnifiedDisplayId | |
| 324 : display_manager->GetDisplayIdForUIScaling(); | |
| 325 const DisplayInfo& display_info = display_manager->GetDisplayInfo(display_id); | |
| 326 DisplayMode mode; | |
| 327 | |
| 328 if (display_manager->IsInUnifiedMode()) { | |
| 329 if (!GetDisplayModeForNextResolution(display_info, up, &mode)) | |
| 330 return; | |
| 331 } else { | |
| 332 if (!GetDisplayModeForNextUIScale(display_info, up, &mode)) | |
| 333 return; | |
| 334 } | |
| 335 display_manager->SetDisplayMode(display_id, mode); | |
| 336 } | |
| 337 | |
| 338 void HandleShowKeyboardOverlay() { | 289 void HandleShowKeyboardOverlay() { |
| 339 base::RecordAction(UserMetricsAction("Accel_Show_Keyboard_Overlay")); | 290 base::RecordAction(UserMetricsAction("Accel_Show_Keyboard_Overlay")); |
| 340 ash::Shell::GetInstance()->new_window_delegate()->ShowKeyboardOverlay(); | 291 ash::Shell::GetInstance()->new_window_delegate()->ShowKeyboardOverlay(); |
| 341 } | 292 } |
| 342 | 293 |
| 343 bool CanHandleShowMessageCenterBubble() { | 294 bool CanHandleShowMessageCenterBubble() { |
| 344 RootWindowController* controller = | 295 RootWindowController* controller = |
| 345 RootWindowController::ForTargetRootWindow(); | 296 RootWindowController::ForTargetRootWindow(); |
| 346 StatusAreaWidget* status_area_widget = | 297 StatusAreaWidget* status_area_widget = |
| 347 controller->shelf()->status_area_widget(); | 298 controller->shelf()->status_area_widget(); |
| (...skipping 531 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 879 case NEW_INCOGNITO_WINDOW: | 830 case NEW_INCOGNITO_WINDOW: |
| 880 return CanHandleNewIncognitoWindow(); | 831 return CanHandleNewIncognitoWindow(); |
| 881 case NEXT_IME: | 832 case NEXT_IME: |
| 882 return CanHandleNextIme(ime_control_delegate_.get(), | 833 return CanHandleNextIme(ime_control_delegate_.get(), |
| 883 previous_accelerator); | 834 previous_accelerator); |
| 884 case PREVIOUS_IME: | 835 case PREVIOUS_IME: |
| 885 return CanHandlePreviousIme(ime_control_delegate_.get()); | 836 return CanHandlePreviousIme(ime_control_delegate_.get()); |
| 886 case SCALE_UI_RESET: | 837 case SCALE_UI_RESET: |
| 887 case SCALE_UI_UP: | 838 case SCALE_UI_UP: |
| 888 case SCALE_UI_DOWN: | 839 case SCALE_UI_DOWN: |
| 889 return CanHandleScaleUI(); | 840 return accelerators::IsInternalDisplayZoomEnabled(); |
| 890 case SHOW_MESSAGE_CENTER_BUBBLE: | 841 case SHOW_MESSAGE_CENTER_BUBBLE: |
| 891 return CanHandleShowMessageCenterBubble(); | 842 return CanHandleShowMessageCenterBubble(); |
| 892 case SWITCH_IME: | 843 case SWITCH_IME: |
| 893 return CanHandleSwitchIme(ime_control_delegate_.get(), accelerator); | 844 return CanHandleSwitchIme(ime_control_delegate_.get(), accelerator); |
| 894 case TOGGLE_APP_LIST: | 845 case TOGGLE_APP_LIST: |
| 895 return CanHandleToggleAppList(accelerator, previous_accelerator); | 846 return CanHandleToggleAppList(accelerator, previous_accelerator); |
| 896 case WINDOW_CYCLE_SNAP_DOCK_LEFT: | 847 case WINDOW_CYCLE_SNAP_DOCK_LEFT: |
| 897 case WINDOW_CYCLE_SNAP_DOCK_RIGHT: | 848 case WINDOW_CYCLE_SNAP_DOCK_RIGHT: |
| 898 return CanHandleWindowSnapOrDock(); | 849 return CanHandleWindowSnapOrDock(); |
| 899 case WINDOW_POSITION_CENTER: | 850 case WINDOW_POSITION_CENTER: |
| (...skipping 188 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1088 case RESTORE_TAB: | 1039 case RESTORE_TAB: |
| 1089 HandleRestoreTab(); | 1040 HandleRestoreTab(); |
| 1090 break; | 1041 break; |
| 1091 case ROTATE_SCREEN: | 1042 case ROTATE_SCREEN: |
| 1092 HandleRotateScreen(); | 1043 HandleRotateScreen(); |
| 1093 break; | 1044 break; |
| 1094 case ROTATE_WINDOW: | 1045 case ROTATE_WINDOW: |
| 1095 HandleRotateActiveWindow(); | 1046 HandleRotateActiveWindow(); |
| 1096 break; | 1047 break; |
| 1097 case SCALE_UI_DOWN: | 1048 case SCALE_UI_DOWN: |
| 1098 HandleScaleUI(false /* down */); | 1049 accelerators::ZoomInternalDisplay(false /* down */); |
| 1099 break; | 1050 break; |
| 1100 case SCALE_UI_RESET: | 1051 case SCALE_UI_RESET: |
| 1101 HandleScaleReset(); | 1052 accelerators::ResetInternalDisplayZoom(); |
| 1102 break; | 1053 break; |
| 1103 case SCALE_UI_UP: | 1054 case SCALE_UI_UP: |
| 1104 HandleScaleUI(true /* up */); | 1055 accelerators::ZoomInternalDisplay(true /* up */); |
| 1105 break; | 1056 break; |
| 1106 case SHOW_KEYBOARD_OVERLAY: | 1057 case SHOW_KEYBOARD_OVERLAY: |
| 1107 HandleShowKeyboardOverlay(); | 1058 HandleShowKeyboardOverlay(); |
| 1108 break; | 1059 break; |
| 1109 case SHOW_MESSAGE_CENTER_BUBBLE: | 1060 case SHOW_MESSAGE_CENTER_BUBBLE: |
| 1110 HandleShowMessageCenterBubble(); | 1061 HandleShowMessageCenterBubble(); |
| 1111 break; | 1062 break; |
| 1112 case SHOW_SYSTEM_TRAY_BUBBLE: | 1063 case SHOW_SYSTEM_TRAY_BUBBLE: |
| 1113 HandleShowSystemTrayBubble(); | 1064 HandleShowSystemTrayBubble(); |
| 1114 break; | 1065 break; |
| (...skipping 186 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1301 } | 1252 } |
| 1302 | 1253 |
| 1303 void AcceleratorController::SetKeyboardBrightnessControlDelegate( | 1254 void AcceleratorController::SetKeyboardBrightnessControlDelegate( |
| 1304 scoped_ptr<KeyboardBrightnessControlDelegate> | 1255 scoped_ptr<KeyboardBrightnessControlDelegate> |
| 1305 keyboard_brightness_control_delegate) { | 1256 keyboard_brightness_control_delegate) { |
| 1306 keyboard_brightness_control_delegate_ = | 1257 keyboard_brightness_control_delegate_ = |
| 1307 keyboard_brightness_control_delegate.Pass(); | 1258 keyboard_brightness_control_delegate.Pass(); |
| 1308 } | 1259 } |
| 1309 | 1260 |
| 1310 } // namespace ash | 1261 } // namespace ash |
| OLD | NEW |