X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=src%2Fchrome%2Fbrowser%2Fui%2Fviews%2Ftranslate%2Ftranslate_bubble_view.cc;h=90588a9a2f042b4ef8684482330ec87049426fa3;hb=4a1a0bdd01eef90b0826a0e761d3379d3715c10f;hp=a22b4dadd9e599a90fbf497cde8afdb99e5c8592;hpb=b1be5ca53587d23e7aeb77b26861fdc0a181ffd8;p=platform%2Fframework%2Fweb%2Fcrosswalk.git diff --git a/src/chrome/browser/ui/views/translate/translate_bubble_view.cc b/src/chrome/browser/ui/views/translate/translate_bubble_view.cc index a22b4da..90588a9 100644 --- a/src/chrome/browser/ui/views/translate/translate_bubble_view.cc +++ b/src/chrome/browser/ui/views/translate/translate_bubble_view.cc @@ -20,15 +20,14 @@ #include "chrome/browser/ui/chrome_pages.h" #include "chrome/browser/ui/translate/translate_bubble_model_impl.h" #include "chrome/common/url_constants.h" +#include "chrome/grit/generated_resources.h" #include "components/translate/core/browser/translate_download_manager.h" #include "components/translate/core/browser/translate_manager.h" #include "components/translate/core/browser/translate_ui_delegate.h" #include "content/public/browser/web_contents.h" -#include "grit/generated_resources.h" #include "ui/base/l10n/l10n_util.h" #include "ui/base/models/combobox_model.h" #include "ui/base/models/simple_combobox_model.h" -#include "ui/base/resource/resource_bundle.h" #include "ui/views/controls/button/checkbox.h" #include "ui/views/controls/button/label_button.h" #include "ui/views/controls/combobox/combobox.h" @@ -80,10 +79,12 @@ TranslateBubbleView::~TranslateBubbleView() { } // static -void TranslateBubbleView::ShowBubble(views::View* anchor_view, - content::WebContents* web_contents, - translate::TranslateStep step, - TranslateErrors::Type error_type) { +void TranslateBubbleView::ShowBubble( + views::View* anchor_view, + content::WebContents* web_contents, + translate::TranslateStep step, + translate::TranslateErrors::Type error_type, + bool is_user_gesture) { if (IsShowing()) { // When the user reads the advanced setting panel, the bubble should not be // changed because he/she is focusing on the bubble. @@ -100,6 +101,11 @@ void TranslateBubbleView::ShowBubble(views::View* anchor_view, translate_bubble_view_->SwitchToErrorView(error_type); } return; + } else { + if (step == translate::TRANSLATE_STEP_AFTER_TRANSLATE && + !is_user_gesture) { + return; + } } std::string source_language; @@ -107,18 +113,30 @@ void TranslateBubbleView::ShowBubble(views::View* anchor_view, ChromeTranslateClient::GetTranslateLanguages( web_contents, &source_language, &target_language); - scoped_ptr ui_delegate(new TranslateUIDelegate( - ChromeTranslateClient::GetManagerFromWebContents(web_contents) - ->GetWeakPtr(), - source_language, - target_language)); + scoped_ptr ui_delegate( + new translate::TranslateUIDelegate( + ChromeTranslateClient::GetManagerFromWebContents(web_contents) + ->GetWeakPtr(), + source_language, + target_language)); scoped_ptr model( new TranslateBubbleModelImpl(step, ui_delegate.Pass())); TranslateBubbleView* view = new TranslateBubbleView(anchor_view, model.Pass(), error_type, web_contents); - views::BubbleDelegateView::CreateBubble(view)->Show(); + if (is_user_gesture) + views::BubbleDelegateView::CreateBubble(view)->Show(); + else + views::BubbleDelegateView::CreateBubble(view)->ShowInactive(); +} + +// static +void TranslateBubbleView::CloseBubble() { + if (!IsShowing()) + return; + + translate_bubble_view_->GetWidget()->Close(); } // static @@ -238,7 +256,7 @@ TranslateBubbleModel::ViewState TranslateBubbleView::GetViewState() const { TranslateBubbleView::TranslateBubbleView( views::View* anchor_view, scoped_ptr model, - TranslateErrors::Type error_type, + translate::TranslateErrors::Type error_type, content::WebContents* web_contents) : BubbleDelegateView(anchor_view, views::BubbleBorder::TOP_RIGHT), WebContentsObserver(web_contents), @@ -256,8 +274,8 @@ TranslateBubbleView::TranslateBubbleView( model_(model.Pass()), error_type_(error_type), is_in_incognito_window_( - web_contents ? - web_contents->GetBrowserContext()->IsOffTheRecord() : false), + web_contents ? web_contents->GetBrowserContext()->IsOffTheRecord() + : false), translate_executed_(false), denial_button_clicked_(false) { if (model_->GetViewState() != @@ -718,7 +736,8 @@ void TranslateBubbleView::SwitchView( SizeToContents(); } -void TranslateBubbleView::SwitchToErrorView(TranslateErrors::Type error_type) { +void TranslateBubbleView::SwitchToErrorView( + translate::TranslateErrors::Type error_type) { SwitchView(TranslateBubbleModel::VIEW_STATE_ERROR); error_type_ = error_type; model_->ShowError(error_type);