Commit 8373d5fb authored by Charlene Yan's avatar Charlene Yan Committed by Commit Bot

[Tab Groups] Close tab group editor bubble on destruction of group header.

Bug: 1027426
Change-Id: I22940610369f88a933c85860dcd6aa97defcb8cf
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1941191Reviewed-by: default avatarTaylor Bergquist <tbergquist@chromium.org>
Commit-Queue: Charlene Yan <cyan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#720616}
parent eddb35e1
......@@ -202,9 +202,17 @@ void TabGroupHeader::RemoveObserverFromWidget(views::Widget* widget) {
widget->RemoveObserver(&editor_bubble_tracker_);
}
TabGroupHeader::EditorBubbleTracker::~EditorBubbleTracker() {
if (is_open_) {
widget_->RemoveObserver(this);
widget_->CloseWithReason(views::Widget::ClosedReason::kUnspecified);
}
}
void TabGroupHeader::EditorBubbleTracker::Opened(views::Widget* bubble_widget) {
DCHECK(bubble_widget);
DCHECK(!is_open_);
widget_ = bubble_widget;
is_open_ = true;
bubble_widget->AddObserver(this);
}
......
......@@ -24,6 +24,7 @@ class View;
class TabGroupHeader : public TabSlotView {
public:
TabGroupHeader(TabStrip* tab_strip, TabGroupId group);
~TabGroupHeader() override = default;
// TabSlotView:
bool OnMousePressed(const ui::MouseEvent& event) override;
......@@ -53,7 +54,7 @@ class TabGroupHeader : public TabSlotView {
class EditorBubbleTracker : public views::WidgetObserver {
public:
EditorBubbleTracker() = default;
~EditorBubbleTracker() override = default;
~EditorBubbleTracker() override;
void Opened(views::Widget* bubble_widget);
bool is_open() const { return is_open_; }
......@@ -63,6 +64,7 @@ class TabGroupHeader : public TabSlotView {
private:
bool is_open_ = false;
views::Widget* widget_;
};
EditorBubbleTracker editor_bubble_tracker_;
......
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