Chromium Code Reviews| Index: chrome/browser/ui/views/website_settings/website_settings_popup_view.cc |
| diff --git a/chrome/browser/ui/views/website_settings/website_settings_popup_view.cc b/chrome/browser/ui/views/website_settings/website_settings_popup_view.cc |
| index 4d6e5e6a4de26be8a560a8684f5162f93d4a1c61..87c4ed5cfcccce7a0d02cd18280712cd2d567146 100644 |
| --- a/chrome/browser/ui/views/website_settings/website_settings_popup_view.cc |
| +++ b/chrome/browser/ui/views/website_settings/website_settings_popup_view.cc |
| @@ -52,6 +52,8 @@ |
| namespace { |
| +bool is_popup_showing = false; |
|
Peter Kasting
2014/03/18 01:23:13
Using a process-wide variable for this makes me ne
Justin Donnelly
2014/03/18 15:54:48
This works because the omnibox in window A loses f
|
| + |
| // Padding values for sections on the connection tab. |
| const int kConnectionSectionPaddingBottom = 16; |
| const int kConnectionSectionPaddingLeft = 18; |
| @@ -140,6 +142,9 @@ class InternalPageInfoPopupView : public views::BubbleDelegateView { |
| explicit InternalPageInfoPopupView(views::View* anchor_view); |
| virtual ~InternalPageInfoPopupView(); |
| + // views::BubbleDelegateView: |
| + virtual void OnWidgetDestroying(views::Widget* widget) OVERRIDE; |
| + |
| private: |
| DISALLOW_COPY_AND_ASSIGN(InternalPageInfoPopupView); |
| }; |
| @@ -248,6 +253,10 @@ InternalPageInfoPopupView::InternalPageInfoPopupView(views::View* anchor_view) |
| InternalPageInfoPopupView::~InternalPageInfoPopupView() { |
| } |
| +void InternalPageInfoPopupView::OnWidgetDestroying(views::Widget* widget) { |
| + is_popup_showing = false; |
| +} |
| + |
| //////////////////////////////////////////////////////////////////////////////// |
| // WebsiteSettingsPopupView |
| //////////////////////////////////////////////////////////////////////////////// |
| @@ -262,6 +271,7 @@ void WebsiteSettingsPopupView::ShowPopup(views::View* anchor_view, |
| const GURL& url, |
| const content::SSLStatus& ssl, |
| Browser* browser) { |
| + is_popup_showing = true; |
| if (InternalChromePage(url)) { |
| new InternalPageInfoPopupView(anchor_view); |
| } else { |
| @@ -270,6 +280,11 @@ void WebsiteSettingsPopupView::ShowPopup(views::View* anchor_view, |
| } |
| } |
| +// static |
| +bool WebsiteSettingsPopupView::IsPopupShowing() { |
| + return is_popup_showing; |
| +} |
| + |
| WebsiteSettingsPopupView::WebsiteSettingsPopupView( |
| views::View* anchor_view, |
| Profile* profile, |
| @@ -355,6 +370,7 @@ void WebsiteSettingsPopupView::OnPermissionChanged( |
| } |
| void WebsiteSettingsPopupView::OnWidgetDestroying(views::Widget* widget) { |
| + is_popup_showing = false; |
| presenter_->OnUIClosing(); |
| } |