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

Unified Diff: ash/accelerators/accelerator_controller.cc

Issue 2891263002: chromeos: Remove some IME methods from ash::SystemTrayDelegate (Closed)
Patch Set: rebase Created 3 years, 7 months 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ash/accelerators/accelerator_controller.h ('k') | ash/accelerators/accelerator_controller_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ash/accelerators/accelerator_controller.cc
diff --git a/ash/accelerators/accelerator_controller.cc b/ash/accelerators/accelerator_controller.cc
index 6b9336da3fde20273256ac2106206f2e81a27fc4..789059b65e59b661ee936a128796670c73f86cc2 100644
--- a/ash/accelerators/accelerator_controller.cc
+++ b/ash/accelerators/accelerator_controller.cc
@@ -12,7 +12,7 @@
#include "ash/accessibility_delegate.h"
#include "ash/accessibility_types.h"
#include "ash/focus_cycler.h"
-#include "ash/ime_control_delegate.h"
+#include "ash/ime/ime_switch_type.h"
#include "ash/media_controller.h"
#include "ash/multi_profile_uma.h"
#include "ash/new_window_controller.h"
@@ -68,6 +68,7 @@ namespace ash {
namespace {
using base::UserMetricsAction;
+using chromeos::input_method::InputMethodManager;
using message_center::Notification;
// Identifier for the high contrast toggle accelerator notification.
@@ -171,6 +172,11 @@ void RecordUmaHistogram(const char* histogram_name,
histogram->Add(sample);
}
+void RecordImeSwitchByAccelerator() {
+ UMA_HISTOGRAM_ENUMERATION("InputMethod.ImeSwitch",
+ ImeSwitchType::kAccelerator, ImeSwitchType::kCount);
+}
+
void HandleCycleBackwardMRU(const ui::Accelerator& accelerator) {
if (accelerator.key_code() == ui::VKEY_TAB)
base::RecordAction(base::UserMetricsAction("Accel_PrevWindow_Tab"));
@@ -251,8 +257,15 @@ void HandleNewWindow() {
Shell::Get()->new_window_controller()->NewWindow(false /* is_incognito */);
}
-bool CanHandleNextIme(ImeControlDelegate* ime_control_delegate) {
- return ime_control_delegate && ime_control_delegate->CanCycleIme();
+bool CanCycleInputMethod() {
+ InputMethodManager* manager = InputMethodManager::Get();
+ DCHECK(manager);
+ if (!manager->GetActiveIMEState()) {
+ LOG(WARNING) << "Cannot cycle through input methods as they are not "
+ "initialized yet.";
+ return false;
+ }
+ return manager->GetActiveIMEState()->CanCycleInputMethod();
}
bool CanHandleCycleMru(const ui::Accelerator& accelerator) {
@@ -267,9 +280,10 @@ bool CanHandleCycleMru(const ui::Accelerator& accelerator) {
return !(keyboard_controller && keyboard_controller->keyboard_visible());
}
-void HandleNextIme(ImeControlDelegate* ime_control_delegate) {
+void HandleNextIme() {
base::RecordAction(UserMetricsAction("Accel_Next_Ime"));
- ime_control_delegate->HandleNextIme();
+ RecordImeSwitchByAccelerator();
+ InputMethodManager::Get()->GetActiveIMEState()->SwitchToNextInputMethod();
}
void HandleOpenFeedbackPage() {
@@ -277,15 +291,14 @@ void HandleOpenFeedbackPage() {
Shell::Get()->new_window_controller()->OpenFeedbackPage();
}
-bool CanHandlePreviousIme(ImeControlDelegate* ime_control_delegate) {
- return ime_control_delegate && ime_control_delegate->CanCycleIme();
-}
-
-void HandlePreviousIme(ImeControlDelegate* ime_control_delegate,
- const ui::Accelerator& accelerator) {
+void HandlePreviousIme(const ui::Accelerator& accelerator) {
base::RecordAction(UserMetricsAction("Accel_Previous_Ime"));
- if (accelerator.key_state() == ui::Accelerator::KeyState::PRESSED)
- ime_control_delegate->HandlePreviousIme();
+ if (accelerator.key_state() == ui::Accelerator::KeyState::PRESSED) {
+ RecordImeSwitchByAccelerator();
+ InputMethodManager::Get()
+ ->GetActiveIMEState()
+ ->SwitchToPreviousInputMethod();
+ }
// Else: consume the Ctrl+Space ET_KEY_RELEASED event but do not do anything.
}
@@ -352,16 +365,22 @@ void HandleShowTaskManager() {
Shell::Get()->new_window_controller()->ShowTaskManager();
}
-bool CanHandleSwitchIme(ImeControlDelegate* ime_control_delegate,
- const ui::Accelerator& accelerator) {
- return ime_control_delegate &&
- ime_control_delegate->CanSwitchIme(accelerator);
+bool CanHandleSwitchIme(const ui::Accelerator& accelerator) {
+ InputMethodManager* manager = InputMethodManager::Get();
+ DCHECK(manager);
+ if (!manager->GetActiveIMEState()) {
+ LOG(WARNING) << "Cannot switch input methods as they are not "
+ "initialized yet.";
+ return false;
+ }
+ return manager->GetActiveIMEState()->CanSwitchInputMethod(accelerator);
}
-void HandleSwitchIme(ImeControlDelegate* ime_control_delegate,
- const ui::Accelerator& accelerator) {
+void HandleSwitchIme(const ui::Accelerator& accelerator) {
base::RecordAction(UserMetricsAction("Accel_Switch_Ime"));
- ime_control_delegate->HandleSwitchIme(accelerator);
+ RecordImeSwitchByAccelerator();
+ InputMethodManager::Get()->GetActiveIMEState()->SwitchInputMethod(
+ accelerator);
}
bool CanHandleToggleAppList(const ui::Accelerator& accelerator,
@@ -735,11 +754,6 @@ AcceleratorController::GetCurrentAcceleratorRestriction() {
return GetAcceleratorProcessingRestriction(-1);
}
-void AcceleratorController::SetImeControlDelegate(
- std::unique_ptr<ImeControlDelegate> ime_control_delegate) {
- ime_control_delegate_ = std::move(ime_control_delegate);
-}
-
bool AcceleratorController::ShouldCloseMenuAndRepostAccelerator(
const ui::Accelerator& accelerator) const {
auto itr = accelerators_.find(accelerator);
@@ -912,15 +926,15 @@ bool AcceleratorController::CanPerformAction(
case NEW_INCOGNITO_WINDOW:
return CanHandleNewIncognitoWindow();
case NEXT_IME:
- return CanHandleNextIme(ime_control_delegate_.get());
+ return CanCycleInputMethod();
case PREVIOUS_IME:
- return CanHandlePreviousIme(ime_control_delegate_.get());
+ return CanCycleInputMethod();
case SHOW_MESSAGE_CENTER_BUBBLE:
return CanHandleShowMessageCenterBubble();
case SHOW_STYLUS_TOOLS:
return CanHandleShowStylusTools();
case SWITCH_IME:
- return CanHandleSwitchIme(ime_control_delegate_.get(), accelerator);
+ return CanHandleSwitchIme(accelerator);
case SWITCH_TO_PREVIOUS_USER:
case SWITCH_TO_NEXT_USER:
return CanHandleCycleUser();
@@ -1111,7 +1125,7 @@ void AcceleratorController::PerformAction(AcceleratorAction action,
HandleNewWindow();
break;
case NEXT_IME:
- HandleNextIme(ime_control_delegate_.get());
+ HandleNextIme();
break;
case OPEN_CROSH:
HandleCrosh();
@@ -1126,7 +1140,7 @@ void AcceleratorController::PerformAction(AcceleratorAction action,
HandleGetHelp();
break;
case PREVIOUS_IME:
- HandlePreviousIme(ime_control_delegate_.get(), accelerator);
+ HandlePreviousIme(accelerator);
break;
case PRINT_UI_HIERARCHIES:
debug::PrintUIHierarchies();
@@ -1159,7 +1173,7 @@ void AcceleratorController::PerformAction(AcceleratorAction action,
HandleSuspend();
break;
case SWITCH_IME:
- HandleSwitchIme(ime_control_delegate_.get(), accelerator);
+ HandleSwitchIme(accelerator);
break;
case SWITCH_TO_NEXT_USER:
HandleCycleUser(CycleUserDirection::NEXT);
« 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