Index: chrome/browser/chromeos/login/keyboard_switch_menu.cc |
diff --git a/chrome/browser/chromeos/login/keyboard_switch_menu.cc b/chrome/browser/chromeos/login/keyboard_switch_menu.cc |
index 3bc5dfefb04ee6a5732df19361472d14985b35cb..4cb30b6b457a3cfb533e6a82a0bdc72af83330fd 100644 |
--- a/chrome/browser/chromeos/login/keyboard_switch_menu.cc |
+++ b/chrome/browser/chromeos/login/keyboard_switch_menu.cc |
@@ -40,17 +40,20 @@ bool KeyboardSwitchMenu::ShouldSupportConfigUI() { |
//////////////////////////////////////////////////////////////////////////////// |
// views::ViewMenuDelegate implementation. |
void KeyboardSwitchMenu::RunMenu(views::View* source, const gfx::Point& pt) { |
- PrepareForMenuOpen(); |
gfx::Point new_pt(pt); |
views::MenuButton* button = static_cast<views::MenuButton*>(source); |
- // Keyboard switch menu is aligned on left by default. |
+ // Keyboard switch menu is aligned on left by default. MenuButton passes |
+ // in pt the lower left corner for RTL and the lower right corner for |
+ // non-RTL (with menu_offset applied). |
int reverse_offset = button->width() + button->menu_offset().x() * 2; |
if (base::i18n::IsRTL()) { |
new_pt.set_x(pt.x() + reverse_offset); |
} else { |
new_pt.set_x(pt.x() - reverse_offset); |
} |
- input_method_menu().RunMenuAt(new_pt, views::Menu2::ALIGN_TOPLEFT); |
+ |
+ set_menu_alignment(views::MenuItemView::TOPLEFT); |
+ InputMethodMenu::RunMenu(source, new_pt); |
} |
string16 KeyboardSwitchMenu::GetCurrentKeyboardName() const { |