Index: ash/system/ime_menu/ime_menu_tray.cc |
diff --git a/ash/system/ime_menu/ime_menu_tray.cc b/ash/system/ime_menu/ime_menu_tray.cc |
index 084e9fcb3e8ccd491981fd55a5bc42fd2572b4c6..4b2b6b15617e70c78cca284b28de714e5eb0de3a 100644 |
--- a/ash/system/ime_menu/ime_menu_tray.cc |
+++ b/ash/system/ime_menu/ime_menu_tray.cc |
@@ -195,7 +195,7 @@ class ImeButtonsView : public views::View, public views::ButtonListener { |
// views::ButtonListener: |
void ButtonPressed(views::Button* sender, const ui::Event& event) override { |
if (sender == settings_button_) { |
- ime_menu_tray_->HideImeMenuBubble(); |
+ ime_menu_tray_->CloseBubble(); |
ShowIMESettings(); |
return; |
} |
@@ -312,6 +312,9 @@ ImeMenuTray::ImeMenuTray(Shelf* shelf) |
SystemTrayNotifier* tray_notifier = Shell::Get()->system_tray_notifier(); |
tray_notifier->AddIMEObserver(this); |
tray_notifier->AddVirtualKeyboardObserver(this); |
+ |
+ if (!drag_controller()) |
+ set_drag_controller(base::MakeUnique<TrayDragController>(shelf)); |
} |
ImeMenuTray::~ImeMenuTray() { |
@@ -326,19 +329,6 @@ ImeMenuTray::~ImeMenuTray() { |
keyboard_controller->RemoveObserver(this); |
} |
-void ImeMenuTray::ShowImeMenuBubble() { |
- keyboard::KeyboardController* keyboard_controller = |
- keyboard::KeyboardController::GetInstance(); |
- if (keyboard_controller && keyboard_controller->keyboard_visible()) { |
- show_bubble_after_keyboard_hidden_ = true; |
- keyboard_controller->AddObserver(this); |
- keyboard_controller->HideKeyboard( |
- keyboard::KeyboardController::HIDE_REASON_AUTOMATIC); |
- } else { |
- ShowImeMenuBubbleInternal(); |
- } |
-} |
- |
void ImeMenuTray::ShowImeMenuBubbleInternal() { |
views::TrayBubbleView::InitParams init_params; |
init_params.delegate = this; |
@@ -371,19 +361,8 @@ void ImeMenuTray::ShowImeMenuBubbleInternal() { |
SetIsActive(true); |
} |
-void ImeMenuTray::HideImeMenuBubble() { |
- bubble_.reset(); |
- ime_list_view_ = nullptr; |
- SetIsActive(false); |
- shelf()->UpdateAutoHideState(); |
-} |
- |
-bool ImeMenuTray::IsImeMenuBubbleShown() { |
- return !!bubble_; |
-} |
- |
void ImeMenuTray::ShowKeyboardWithKeyset(const std::string& keyset) { |
- HideImeMenuBubble(); |
+ CloseBubble(); |
// Overrides the keyboard url ref to make it shown with the given keyset. |
if (InputMethodManager::Get()) |
@@ -461,21 +440,45 @@ base::string16 ImeMenuTray::GetAccessibleNameForTray() { |
void ImeMenuTray::HideBubbleWithView(const views::TrayBubbleView* bubble_view) { |
if (bubble_->bubble_view() == bubble_view) |
- HideImeMenuBubble(); |
+ CloseBubble(); |
} |
void ImeMenuTray::ClickedOutsideBubble() { |
- HideImeMenuBubble(); |
+ CloseBubble(); |
} |
bool ImeMenuTray::PerformAction(const ui::Event& event) { |
if (bubble_) |
- HideImeMenuBubble(); |
+ CloseBubble(); |
else |
- ShowImeMenuBubble(); |
+ ShowBubble(); |
return true; |
} |
+void ImeMenuTray::CloseBubble() { |
+ bubble_.reset(); |
+ ime_list_view_ = nullptr; |
+ SetIsActive(false); |
+ shelf()->UpdateAutoHideState(); |
+} |
+ |
+void ImeMenuTray::ShowBubble() { |
+ keyboard::KeyboardController* keyboard_controller = |
+ keyboard::KeyboardController::GetInstance(); |
+ if (keyboard_controller && keyboard_controller->keyboard_visible()) { |
+ show_bubble_after_keyboard_hidden_ = true; |
+ keyboard_controller->AddObserver(this); |
+ keyboard_controller->HideKeyboard( |
+ keyboard::KeyboardController::HIDE_REASON_AUTOMATIC); |
+ } else { |
+ ShowImeMenuBubbleInternal(); |
+ } |
+} |
+ |
+views::TrayBubbleView* ImeMenuTray::GetBubbleView() { |
+ return bubble_ ? bubble_->bubble_view() : nullptr; |
+} |
+ |
void ImeMenuTray::OnIMERefresh() { |
UpdateTrayLabel(); |
if (bubble_ && ime_list_view_) { |
@@ -491,7 +494,7 @@ void ImeMenuTray::OnIMEMenuActivationChanged(bool is_activated) { |
if (is_activated) |
UpdateTrayLabel(); |
else |
- HideImeMenuBubble(); |
+ CloseBubble(); |
} |
void ImeMenuTray::BubbleViewDestroyed() { |
@@ -578,7 +581,7 @@ void ImeMenuTray::OnKeyboardHidden() { |
void ImeMenuTray::OnKeyboardSuppressionChanged(bool suppressed) { |
if (suppressed != keyboard_suppressed_ && bubble_) |
- HideImeMenuBubble(); |
+ CloseBubble(); |
keyboard_suppressed_ = suppressed; |
} |