| 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;
|
| }
|
|
|
|
|