diff options
author | yusukes@chromium.org <yusukes@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-06-14 02:46:54 +0000 |
---|---|---|
committer | yusukes@chromium.org <yusukes@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-06-14 02:46:54 +0000 |
commit | 495caf3da866d8967176bf4102532dba412a1012 (patch) | |
tree | 917e3f49e978bf0f592b72bf18c581038e16aeeb /chrome/browser | |
parent | d9fbd894c8088ec6187f000ee07ef45c411e4b36 (diff) | |
download | chromium_src-495caf3da866d8967176bf4102532dba412a1012.zip chromium_src-495caf3da866d8967176bf4102532dba412a1012.tar.gz chromium_src-495caf3da866d8967176bf4102532dba412a1012.tar.bz2 |
Show "Hit Shift-Alt to switch keyboard layout" hint string in the message bubble
if more than one keyboard are active.
BUG=chromium-os:3936
TEST=manual
Review URL: http://codereview.chromium.org/2787008
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@49666 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser')
4 files changed, 14 insertions, 0 deletions
diff --git a/chrome/browser/chromeos/cros/language_library.cc b/chrome/browser/chromeos/cros/language_library.cc index ccf37d7..8104b09 100644 --- a/chrome/browser/chromeos/cros/language_library.cc +++ b/chrome/browser/chromeos/cros/language_library.cc @@ -183,6 +183,11 @@ chromeos::InputMethodDescriptors* LanguageLibraryImpl::GetActiveInputMethods() { return result; } +size_t LanguageLibraryImpl::GetNumActiveInputMethods() { + scoped_ptr<InputMethodDescriptors> input_methods(GetActiveInputMethods()); + return input_methods->size(); +} + chromeos::InputMethodDescriptors* LanguageLibraryImpl::GetSupportedInputMethods() { chromeos::InputMethodDescriptors* result = NULL; diff --git a/chrome/browser/chromeos/cros/language_library.h b/chrome/browser/chromeos/cros/language_library.h index 3cf3d3f..c36bdb9 100644 --- a/chrome/browser/chromeos/cros/language_library.h +++ b/chrome/browser/chromeos/cros/language_library.h @@ -38,6 +38,9 @@ class LanguageLibrary { // returns a fallback input method list (and never returns NULL). virtual InputMethodDescriptors* GetActiveInputMethods() = 0; + // Returns the number of active input methods. + virtual size_t GetNumActiveInputMethods() = 0; + // Returns the list of input methods we support, including ones not active. // If the cros library is not found or IBus/DBus daemon is not alive, this // function returns a fallback input method list (and never returns NULL). @@ -125,6 +128,7 @@ class LanguageLibraryImpl : public LanguageLibrary { virtual void AddObserver(Observer* observer); virtual void RemoveObserver(Observer* observer); virtual InputMethodDescriptors* GetActiveInputMethods(); + virtual size_t GetNumActiveInputMethods(); virtual InputMethodDescriptors* GetSupportedInputMethods(); virtual void ChangeInputMethod(const std::string& input_method_id); virtual void SetImePropertyActivated(const std::string& key, diff --git a/chrome/browser/chromeos/cros/mock_language_library.h b/chrome/browser/chromeos/cros/mock_language_library.h index 2e9f9f5..101154f 100644 --- a/chrome/browser/chromeos/cros/mock_language_library.h +++ b/chrome/browser/chromeos/cros/mock_language_library.h @@ -21,6 +21,7 @@ class MockLanguageLibrary : public LanguageLibrary { MOCK_METHOD1(RemoveObserver, void(Observer*)); MOCK_METHOD0(GetActiveInputMethods, InputMethodDescriptors*(void)); + MOCK_METHOD0(GetNumActiveInputMethods, size_t(void)); MOCK_METHOD0(GetSupportedInputMethods, InputMethodDescriptors*(void)); MOCK_METHOD1(ChangeInputMethod, void(const std::string&)); MOCK_METHOD2(SetImePropertyActivated, void(const std::string&, bool)); diff --git a/chrome/browser/chromeos/login/screen_locker.cc b/chrome/browser/chromeos/login/screen_locker.cc index 3c30fc2..e9f637e 100644 --- a/chrome/browser/chromeos/login/screen_locker.cc +++ b/chrome/browser/chromeos/login/screen_locker.cc @@ -410,6 +410,10 @@ void ScreenLocker::OnLoginFailure(const std::string& error) { if (!error.empty()) msg += L"\n" + ASCIIToWide(error); + LanguageLibrary* language_library = CrosLibrary::Get()->GetLanguageLibrary(); + if (language_library->GetNumActiveInputMethods() > 1) + msg += L"\n" + l10n_util::GetString(IDS_LOGIN_ERROR_KEYBOARD_SWITCH_HINT); + error_info_ = MessageBubble::ShowNoGrab( lock_window_, rect, |