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

Unified Diff: ash/accelerators/accelerator_controller.cc

Issue 2925683002: Revert of chromeos: Remove some IME methods from ash::SystemTrayDelegate (Closed)
Patch Set: Created 3 years, 6 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 789059b65e59b661ee936a128796670c73f86cc2..6b9336da3fde20273256ac2106206f2e81a27fc4 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/ime_switch_type.h"
+#include "ash/ime_control_delegate.h"
#include "ash/media_controller.h"
#include "ash/multi_profile_uma.h"
#include "ash/new_window_controller.h"
@@ -68,7 +68,6 @@
namespace {
using base::UserMetricsAction;
-using chromeos::input_method::InputMethodManager;
using message_center::Notification;
// Identifier for the high contrast toggle accelerator notification.
@@ -172,11 +171,6 @@
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"));
@@ -257,15 +251,8 @@
Shell::Get()->new_window_controller()->NewWindow(false /* is_incognito */);
}
-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 CanHandleNextIme(ImeControlDelegate* ime_control_delegate) {
+ return ime_control_delegate && ime_control_delegate->CanCycleIme();
}
bool CanHandleCycleMru(const ui::Accelerator& accelerator) {
@@ -280,10 +267,9 @@
return !(keyboard_controller && keyboard_controller->keyboard_visible());
}
-void HandleNextIme() {
+void HandleNextIme(ImeControlDelegate* ime_control_delegate) {
base::RecordAction(UserMetricsAction("Accel_Next_Ime"));
- RecordImeSwitchByAccelerator();
- InputMethodManager::Get()->GetActiveIMEState()->SwitchToNextInputMethod();
+ ime_control_delegate->HandleNextIme();
}
void HandleOpenFeedbackPage() {
@@ -291,14 +277,15 @@
Shell::Get()->new_window_controller()->OpenFeedbackPage();
}
-void HandlePreviousIme(const ui::Accelerator& accelerator) {
+bool CanHandlePreviousIme(ImeControlDelegate* ime_control_delegate) {
+ return ime_control_delegate && ime_control_delegate->CanCycleIme();
+}
+
+void HandlePreviousIme(ImeControlDelegate* ime_control_delegate,
+ const ui::Accelerator& accelerator) {
base::RecordAction(UserMetricsAction("Accel_Previous_Ime"));
- if (accelerator.key_state() == ui::Accelerator::KeyState::PRESSED) {
- RecordImeSwitchByAccelerator();
- InputMethodManager::Get()
- ->GetActiveIMEState()
- ->SwitchToPreviousInputMethod();
- }
+ if (accelerator.key_state() == ui::Accelerator::KeyState::PRESSED)
+ ime_control_delegate->HandlePreviousIme();
// Else: consume the Ctrl+Space ET_KEY_RELEASED event but do not do anything.
}
@@ -365,22 +352,16 @@
Shell::Get()->new_window_controller()->ShowTaskManager();
}
-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(const ui::Accelerator& accelerator) {
+bool CanHandleSwitchIme(ImeControlDelegate* ime_control_delegate,
+ const ui::Accelerator& accelerator) {
+ return ime_control_delegate &&
+ ime_control_delegate->CanSwitchIme(accelerator);
+}
+
+void HandleSwitchIme(ImeControlDelegate* ime_control_delegate,
+ const ui::Accelerator& accelerator) {
base::RecordAction(UserMetricsAction("Accel_Switch_Ime"));
- RecordImeSwitchByAccelerator();
- InputMethodManager::Get()->GetActiveIMEState()->SwitchInputMethod(
- accelerator);
+ ime_control_delegate->HandleSwitchIme(accelerator);
}
bool CanHandleToggleAppList(const ui::Accelerator& accelerator,
@@ -752,6 +733,11 @@
AcceleratorController::AcceleratorProcessingRestriction
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(
@@ -926,15 +912,15 @@
case NEW_INCOGNITO_WINDOW:
return CanHandleNewIncognitoWindow();
case NEXT_IME:
- return CanCycleInputMethod();
+ return CanHandleNextIme(ime_control_delegate_.get());
case PREVIOUS_IME:
- return CanCycleInputMethod();
+ return CanHandlePreviousIme(ime_control_delegate_.get());
case SHOW_MESSAGE_CENTER_BUBBLE:
return CanHandleShowMessageCenterBubble();
case SHOW_STYLUS_TOOLS:
return CanHandleShowStylusTools();
case SWITCH_IME:
- return CanHandleSwitchIme(accelerator);
+ return CanHandleSwitchIme(ime_control_delegate_.get(), accelerator);
case SWITCH_TO_PREVIOUS_USER:
case SWITCH_TO_NEXT_USER:
return CanHandleCycleUser();
@@ -1125,7 +1111,7 @@
HandleNewWindow();
break;
case NEXT_IME:
- HandleNextIme();
+ HandleNextIme(ime_control_delegate_.get());
break;
case OPEN_CROSH:
HandleCrosh();
@@ -1140,7 +1126,7 @@
HandleGetHelp();
break;
case PREVIOUS_IME:
- HandlePreviousIme(accelerator);
+ HandlePreviousIme(ime_control_delegate_.get(), accelerator);
break;
case PRINT_UI_HIERARCHIES:
debug::PrintUIHierarchies();
@@ -1173,7 +1159,7 @@
HandleSuspend();
break;
case SWITCH_IME:
- HandleSwitchIme(accelerator);
+ HandleSwitchIme(ime_control_delegate_.get(), 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