Index: chrome/browser/chromeos/input_method/input_method_manager_impl.cc |
diff --git a/chrome/browser/chromeos/input_method/input_method_manager_impl.cc b/chrome/browser/chromeos/input_method/input_method_manager_impl.cc |
index 8fda319f81d34e72e41f833899cd88e2ca259a6f..d0a068d6afa573b60098ef439acebab3a8fcb522 100644 |
--- a/chrome/browser/chromeos/input_method/input_method_manager_impl.cc |
+++ b/chrome/browser/chromeos/input_method/input_method_manager_impl.cc |
@@ -37,6 +37,53 @@ namespace { |
const char nacl_mozc_jp_id[] = |
"_comp_ime_fpfbhcjppmaeaijcidgiibchfbnhbeljnacl_mozc_jp"; |
+const char *kMod3LayoutIds[] = { |
+ "xkb:de:neo:ger", |
+ "xkb:ca:multix:fra", |
+}; |
+ |
+const char *kAltGrLayoutIds[] = { |
+ "xkb:be::fra", |
+ "xkb:be::ger", |
+ "xkb:be::nld", |
+ "xkb:bg::bul", |
+ "xkb:bg:phonetic:bul", |
+ "xkb:br::por", |
+ "xkb:ca::fra", |
+ "xkb:ca:eng:eng", |
+ "xkb:ca:multix:fra", |
+ "xkb:ch::ger", |
+ "xkb:ch:fr:fra", |
+ "xkb:cz::cze", |
+ "xkb:de::ger", |
+ "xkb:de:neo:ger", |
+ "xkb:dk::dan", |
+ "xkb:ee::est", |
+ "xkb:es::spa", |
+ "xkb:es:cat:cat", |
+ "xkb:fi::fin", |
+ "xkb:fr::fra", |
+ "xkb:gb:dvorak:eng", |
+ "xkb:gb:extd:eng", |
+ "xkb:gr::gre", |
+ "xkb:hr::scr", |
+ "xkb:il::heb", |
+ "xkb:it::ita", |
+ "xkb:latam::spa", |
+ "xkb:lt::lit", |
+ "xkb:no::nob", |
+ "xkb:pl::pol", |
+ "xkb:pt::por", |
+ "xkb:ro::rum", |
+ "xkb:se::swe", |
+ "xkb:si::slv", |
+ "xkb:sk::slo", |
+ "xkb:tr::tur", |
+ "xkb:ua::ukr", |
+ "xkb:us:altgr-intl:eng", |
+ "xkb:us:intl:eng", |
+}; |
+ |
bool Contains(const std::vector<std::string>& container, |
const std::string& value) { |
return std::find(container.begin(), container.end(), value) != |
@@ -700,6 +747,22 @@ InputMethodDescriptor InputMethodManagerImpl::GetCurrentInputMethod() const { |
return current_input_method_; |
} |
+bool InputMethodManagerImpl::IsMod3UsedByCurrentInputMethod() const { |
+ for (size_t i = 0; i < arraysize(kMod3LayoutIds); ++i) { |
+ if (GetCurrentInputMethod().id() == kMod3LayoutIds[i]) |
+ return true; |
+ } |
+ return false; |
+} |
+ |
+bool InputMethodManagerImpl::IsAltGrUsedByCurrentInputMethod() const { |
+ for (size_t i = 0; i < arraysize(kAltGrLayoutIds); ++i) { |
+ if (GetCurrentInputMethod().id() == kAltGrLayoutIds[i]) |
+ return true; |
+ } |
+ return false; |
+} |
+ |
XKeyboard* InputMethodManagerImpl::GetXKeyboard() { |
return xkeyboard_.get(); |
} |