| 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 <utility> | 7 #include <utility> |
| 8 | 8 |
| 9 #include "ash/common/accelerators/accelerator_commands.h" | 9 #include "ash/common/accelerators/accelerator_commands.h" |
| 10 #include "ash/common/accelerators/accelerator_controller_delegate.h" | 10 #include "ash/common/accelerators/accelerator_controller_delegate.h" |
| (...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 150 message_center::RichNotificationData(), | 150 message_center::RichNotificationData(), |
| 151 new DeprecatedAcceleratorNotificationDelegate)); | 151 new DeprecatedAcceleratorNotificationDelegate)); |
| 152 message_center::MessageCenter::Get()->AddNotification( | 152 message_center::MessageCenter::Get()->AddNotification( |
| 153 std::move(notification)); | 153 std::move(notification)); |
| 154 } | 154 } |
| 155 | 155 |
| 156 ui::Accelerator CreateAccelerator(ui::KeyboardCode keycode, | 156 ui::Accelerator CreateAccelerator(ui::KeyboardCode keycode, |
| 157 int modifiers, | 157 int modifiers, |
| 158 bool trigger_on_press) { | 158 bool trigger_on_press) { |
| 159 ui::Accelerator accelerator(keycode, modifiers); | 159 ui::Accelerator accelerator(keycode, modifiers); |
| 160 accelerator.set_type(trigger_on_press ? ui::ET_KEY_PRESSED | 160 accelerator.set_key_state(trigger_on_press |
| 161 : ui::ET_KEY_RELEASED); | 161 ? ui::Accelerator::KeyState::PRESSED |
| 162 : ui::Accelerator::KeyState::RELEASED); |
| 162 return accelerator; | 163 return accelerator; |
| 163 } | 164 } |
| 164 | 165 |
| 165 void RecordUmaHistogram(const char* histogram_name, | 166 void RecordUmaHistogram(const char* histogram_name, |
| 166 DeprecatedAcceleratorUsage sample) { | 167 DeprecatedAcceleratorUsage sample) { |
| 167 auto* histogram = base::LinearHistogram::FactoryGet( | 168 auto* histogram = base::LinearHistogram::FactoryGet( |
| 168 histogram_name, 1, DEPRECATED_USAGE_COUNT, DEPRECATED_USAGE_COUNT + 1, | 169 histogram_name, 1, DEPRECATED_USAGE_COUNT, DEPRECATED_USAGE_COUNT + 1, |
| 169 base::HistogramBase::kUmaTargetedHistogramFlag); | 170 base::HistogramBase::kUmaTargetedHistogramFlag); |
| 170 histogram->Add(sample); | 171 histogram->Add(sample); |
| 171 } | 172 } |
| (...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 276 WmShell::Get()->new_window_controller()->OpenFeedbackPage(); | 277 WmShell::Get()->new_window_controller()->OpenFeedbackPage(); |
| 277 } | 278 } |
| 278 | 279 |
| 279 bool CanHandlePreviousIme(ImeControlDelegate* ime_control_delegate) { | 280 bool CanHandlePreviousIme(ImeControlDelegate* ime_control_delegate) { |
| 280 return ime_control_delegate && ime_control_delegate->CanCycleIme(); | 281 return ime_control_delegate && ime_control_delegate->CanCycleIme(); |
| 281 } | 282 } |
| 282 | 283 |
| 283 void HandlePreviousIme(ImeControlDelegate* ime_control_delegate, | 284 void HandlePreviousIme(ImeControlDelegate* ime_control_delegate, |
| 284 const ui::Accelerator& accelerator) { | 285 const ui::Accelerator& accelerator) { |
| 285 base::RecordAction(UserMetricsAction("Accel_Previous_Ime")); | 286 base::RecordAction(UserMetricsAction("Accel_Previous_Ime")); |
| 286 if (accelerator.type() == ui::ET_KEY_PRESSED) | 287 if (accelerator.key_state() == ui::Accelerator::KeyState::PRESSED) |
| 287 ime_control_delegate->HandlePreviousIme(); | 288 ime_control_delegate->HandlePreviousIme(); |
| 288 // Else: consume the Ctrl+Space ET_KEY_RELEASED event but do not do anything. | 289 // Else: consume the Ctrl+Space ET_KEY_RELEASED event but do not do anything. |
| 289 } | 290 } |
| 290 | 291 |
| 291 void HandleRestoreTab() { | 292 void HandleRestoreTab() { |
| 292 base::RecordAction(UserMetricsAction("Accel_Restore_Tab")); | 293 base::RecordAction(UserMetricsAction("Accel_Restore_Tab")); |
| 293 WmShell::Get()->new_window_controller()->RestoreTab(); | 294 WmShell::Get()->new_window_controller()->RestoreTab(); |
| 294 } | 295 } |
| 295 | 296 |
| 296 // Rotate the active window. | 297 // Rotate the active window. |
| (...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 362 base::RecordAction(UserMetricsAction("Accel_Switch_Ime")); | 363 base::RecordAction(UserMetricsAction("Accel_Switch_Ime")); |
| 363 ime_control_delegate->HandleSwitchIme(accelerator); | 364 ime_control_delegate->HandleSwitchIme(accelerator); |
| 364 } | 365 } |
| 365 | 366 |
| 366 bool CanHandleToggleAppList(const ui::Accelerator& accelerator, | 367 bool CanHandleToggleAppList(const ui::Accelerator& accelerator, |
| 367 const ui::Accelerator& previous_accelerator) { | 368 const ui::Accelerator& previous_accelerator) { |
| 368 if (accelerator.key_code() == ui::VKEY_LWIN) { | 369 if (accelerator.key_code() == ui::VKEY_LWIN) { |
| 369 // If something else was pressed between the Search key (LWIN) | 370 // If something else was pressed between the Search key (LWIN) |
| 370 // being pressed and released, then ignore the release of the | 371 // being pressed and released, then ignore the release of the |
| 371 // Search key. | 372 // Search key. |
| 372 if (previous_accelerator.type() != ui::ET_KEY_PRESSED || | 373 if (previous_accelerator.key_state() != |
| 374 ui::Accelerator::KeyState::PRESSED || |
| 373 previous_accelerator.key_code() != ui::VKEY_LWIN) { | 375 previous_accelerator.key_code() != ui::VKEY_LWIN) { |
| 374 return false; | 376 return false; |
| 375 } | 377 } |
| 376 | 378 |
| 377 // When spoken feedback is enabled, we should neither toggle the list nor | 379 // When spoken feedback is enabled, we should neither toggle the list nor |
| 378 // consume the key since Search+Shift is one of the shortcuts the a11y | 380 // consume the key since Search+Shift is one of the shortcuts the a11y |
| 379 // feature uses. crbug.com/132296 | 381 // feature uses. crbug.com/132296 |
| 380 if (Shell::GetInstance() | 382 if (Shell::GetInstance() |
| 381 ->accessibility_delegate() | 383 ->accessibility_delegate() |
| 382 ->IsSpokenFeedbackEnabled()) | 384 ->IsSpokenFeedbackEnabled()) |
| (...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 459 } | 461 } |
| 460 | 462 |
| 461 void HandleCrosh() { | 463 void HandleCrosh() { |
| 462 base::RecordAction(UserMetricsAction("Accel_Open_Crosh")); | 464 base::RecordAction(UserMetricsAction("Accel_Open_Crosh")); |
| 463 | 465 |
| 464 WmShell::Get()->new_window_controller()->OpenCrosh(); | 466 WmShell::Get()->new_window_controller()->OpenCrosh(); |
| 465 } | 467 } |
| 466 | 468 |
| 467 bool CanHandleDisableCapsLock(const ui::Accelerator& previous_accelerator) { | 469 bool CanHandleDisableCapsLock(const ui::Accelerator& previous_accelerator) { |
| 468 ui::KeyboardCode previous_key_code = previous_accelerator.key_code(); | 470 ui::KeyboardCode previous_key_code = previous_accelerator.key_code(); |
| 469 if (previous_accelerator.type() == ui::ET_KEY_RELEASED || | 471 if (previous_accelerator.key_state() == ui::Accelerator::KeyState::RELEASED || |
| 470 (previous_key_code != ui::VKEY_LSHIFT && | 472 (previous_key_code != ui::VKEY_LSHIFT && |
| 471 previous_key_code != ui::VKEY_SHIFT && | 473 previous_key_code != ui::VKEY_SHIFT && |
| 472 previous_key_code != ui::VKEY_RSHIFT)) { | 474 previous_key_code != ui::VKEY_RSHIFT)) { |
| 473 // If something else was pressed between the Shift key being pressed | 475 // If something else was pressed between the Shift key being pressed |
| 474 // and released, then ignore the release of the Shift key. | 476 // and released, then ignore the release of the Shift key. |
| 475 return false; | 477 return false; |
| 476 } | 478 } |
| 477 chromeos::input_method::InputMethodManager* ime = | 479 chromeos::input_method::InputMethodManager* ime = |
| 478 chromeos::input_method::InputMethodManager::Get(); | 480 chromeos::input_method::InputMethodManager::Get(); |
| 479 chromeos::input_method::ImeKeyboard* keyboard = | 481 chromeos::input_method::ImeKeyboard* keyboard = |
| (...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 547 } | 549 } |
| 548 | 550 |
| 549 bool CanHandleToggleCapsLock(const ui::Accelerator& accelerator, | 551 bool CanHandleToggleCapsLock(const ui::Accelerator& accelerator, |
| 550 const ui::Accelerator& previous_accelerator) { | 552 const ui::Accelerator& previous_accelerator) { |
| 551 chromeos::input_method::InputMethodManager* ime = | 553 chromeos::input_method::InputMethodManager* ime = |
| 552 chromeos::input_method::InputMethodManager::Get(); | 554 chromeos::input_method::InputMethodManager::Get(); |
| 553 | 555 |
| 554 // This shortcust is set to be trigger on release. Either the current | 556 // This shortcust is set to be trigger on release. Either the current |
| 555 // accelerator is a Search release or Alt release. | 557 // accelerator is a Search release or Alt release. |
| 556 if (accelerator.key_code() == ui::VKEY_LWIN && | 558 if (accelerator.key_code() == ui::VKEY_LWIN && |
| 557 accelerator.type() == ui::ET_KEY_RELEASED) { | 559 accelerator.key_state() == ui::Accelerator::KeyState::RELEASED) { |
| 558 // The previous must be either an Alt press or Search press: | 560 // The previous must be either an Alt press or Search press: |
| 559 // 1. Press Alt, Press Search, Release Search, Release Alt. | 561 // 1. Press Alt, Press Search, Release Search, Release Alt. |
| 560 // 2. Press Search, Press Alt, Release Search, Release Alt. | 562 // 2. Press Search, Press Alt, Release Search, Release Alt. |
| 561 if (previous_accelerator.type() == ui::ET_KEY_PRESSED && | 563 if (previous_accelerator.key_state() == |
| 564 ui::Accelerator::KeyState::PRESSED && |
| 562 (previous_accelerator.key_code() == ui::VKEY_LWIN || | 565 (previous_accelerator.key_code() == ui::VKEY_LWIN || |
| 563 previous_accelerator.key_code() == ui::VKEY_MENU)) { | 566 previous_accelerator.key_code() == ui::VKEY_MENU)) { |
| 564 return ime && ime->GetImeKeyboard(); | 567 return ime && ime->GetImeKeyboard(); |
| 565 } | 568 } |
| 566 } | 569 } |
| 567 | 570 |
| 568 // Alt release. | 571 // Alt release. |
| 569 if (accelerator.key_code() == ui::VKEY_MENU && | 572 if (accelerator.key_code() == ui::VKEY_MENU && |
| 570 accelerator.type() == ui::ET_KEY_RELEASED) { | 573 accelerator.key_state() == ui::Accelerator::KeyState::RELEASED) { |
| 571 // The previous must be either an Alt press or Search press: | 574 // The previous must be either an Alt press or Search press: |
| 572 // 3. Press Alt, Press Search, Release Alt, Release Search. | 575 // 3. Press Alt, Press Search, Release Alt, Release Search. |
| 573 // 4. Press Search, Press Alt, Release Alt, Release Search. | 576 // 4. Press Search, Press Alt, Release Alt, Release Search. |
| 574 if (previous_accelerator.type() == ui::ET_KEY_PRESSED && | 577 if (previous_accelerator.key_state() == |
| 578 ui::Accelerator::KeyState::PRESSED && |
| 575 (previous_accelerator.key_code() == ui::VKEY_LWIN || | 579 (previous_accelerator.key_code() == ui::VKEY_LWIN || |
| 576 previous_accelerator.key_code() == ui::VKEY_MENU)) { | 580 previous_accelerator.key_code() == ui::VKEY_MENU)) { |
| 577 return ime && ime->GetImeKeyboard(); | 581 return ime && ime->GetImeKeyboard(); |
| 578 } | 582 } |
| 579 } | 583 } |
| 580 | 584 |
| 581 return false; | 585 return false; |
| 582 } | 586 } |
| 583 | 587 |
| 584 void HandleToggleCapsLock() { | 588 void HandleToggleCapsLock() { |
| (...skipping 702 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1287 data->uma_histogram_name, data->notification_message_id, | 1291 data->uma_histogram_name, data->notification_message_id, |
| 1288 data->old_shortcut_id, data->new_shortcut_id); | 1292 data->old_shortcut_id, data->new_shortcut_id); |
| 1289 | 1293 |
| 1290 if (!data->deprecated_enabled) | 1294 if (!data->deprecated_enabled) |
| 1291 return AcceleratorProcessingStatus::STOP; | 1295 return AcceleratorProcessingStatus::STOP; |
| 1292 | 1296 |
| 1293 return AcceleratorProcessingStatus::PROCEED; | 1297 return AcceleratorProcessingStatus::PROCEED; |
| 1294 } | 1298 } |
| 1295 | 1299 |
| 1296 } // namespace ash | 1300 } // namespace ash |
| OLD | NEW |