Commit 798b3df4 authored by Peter Kasting's avatar Peter Kasting Committed by Commit Bot

Only create Mac bubble closer when the bubble is activated.

BubbleDialogDelegateView observes multiple widgets.  It's possible for the
anchor widget to be activated after the bubble widget has been created but
before it's visible (e.g. for ExtensionPopup).  Ensure we're actually observing
the right widget.

Bug: none
Change-Id: If266fb3ed900f1bd345296f1fb1d37ff1c0eee0e
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1531720
Auto-Submit: Peter Kasting <pkasting@chromium.org>
Reviewed-by: default avatarTrent Apted <tapted@chromium.org>
Commit-Queue: Peter Kasting <pkasting@chromium.org>
Cr-Commit-Position: refs/heads/master@{#642353}
parent 7335cab0
...@@ -205,7 +205,7 @@ void BubbleDialogDelegateView::OnWidgetActivationChanged(Widget* widget, ...@@ -205,7 +205,7 @@ void BubbleDialogDelegateView::OnWidgetActivationChanged(Widget* widget,
bool active) { bool active) {
#if defined(OS_MACOSX) #if defined(OS_MACOSX)
// Install |mac_bubble_closer_| the first time the widget becomes active. // Install |mac_bubble_closer_| the first time the widget becomes active.
if (active && !mac_bubble_closer_ && GetWidget()) { if (widget == GetWidget() && active && !mac_bubble_closer_) {
mac_bubble_closer_ = std::make_unique<ui::BubbleCloser>( mac_bubble_closer_ = std::make_unique<ui::BubbleCloser>(
GetWidget()->GetNativeWindow().GetNativeNSWindow(), GetWidget()->GetNativeWindow().GetNativeNSWindow(),
base::BindRepeating(&BubbleDialogDelegateView::OnDeactivate, base::BindRepeating(&BubbleDialogDelegateView::OnDeactivate,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment