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