Chromium Code Reviews| Index: ui/events/ozone/layout/xkb/xkb_keyboard_layout_engine.cc |
| diff --git a/ui/events/ozone/layout/xkb/xkb_keyboard_layout_engine.cc b/ui/events/ozone/layout/xkb/xkb_keyboard_layout_engine.cc |
| index a756db9131a69dfdc20747c23bf5f8514021a2f6..931eae353ac6e78484de9ba15826e0c64abe62a5 100644 |
| --- a/ui/events/ozone/layout/xkb/xkb_keyboard_layout_engine.cc |
| +++ b/ui/events/ozone/layout/xkb/xkb_keyboard_layout_engine.cc |
| @@ -646,6 +646,7 @@ bool XkbKeyboardLayoutEngine::CanSetCurrentLayout() const { |
| bool XkbKeyboardLayoutEngine::SetCurrentLayoutByName( |
| const std::string& layout_name) { |
| + xkb_keymap* keymap = NULL; |
| #if defined(OS_CHROMEOS) |
| size_t dash_index = layout_name.find('-'); |
| size_t parentheses_index = layout_name.find('('); |
| @@ -669,15 +670,20 @@ bool XkbKeyboardLayoutEngine::SetCurrentLayoutByName( |
| .variant = layout_variant.c_str(), |
| .options = "" |
| }; |
| - xkb_keymap* keymap = xkb_keymap_new_from_names(xkb_context_.get(), |
| - &names, |
| - XKB_KEYMAP_COMPILE_NO_FLAGS); |
| - if (keymap) { |
| - SetKeymap(keymap); |
| - return true; |
| - } |
| + keymap = xkb_keymap_new_from_names(xkb_context_.get(), |
| + &names, |
| + XKB_KEYMAP_COMPILE_NO_FLAGS); |
| +#else |
| + keymap = xkb_map_new_from_string(xkb_context_.get(), |
| + layout_name.c_str(), |
|
spang
2015/01/07 18:09:05
How did you test this? I'm now confused.. xkb_map_
kpschoedel
2015/01/07 18:17:08
xkb_map_new_from_string() takes a layout descripti
|
| + XKB_KEYMAP_FORMAT_TEXT_V1, |
| + XKB_KEYMAP_COMPILE_NO_FLAGS); |
| #endif // defined(OS_CHROMEOS) |
| - return false; |
| + if (!keymap) |
| + return false; |
| + |
| + SetKeymap(keymap); |
| + return true; |
| } |
| bool XkbKeyboardLayoutEngine::UsesISOLevel5Shift() const { |