summaryrefslogtreecommitdiff
path: root/chromium/ui/views/controls/button/button.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/ui/views/controls/button/button.cc')
-rw-r--r--chromium/ui/views/controls/button/button.cc9
1 files changed, 6 insertions, 3 deletions
diff --git a/chromium/ui/views/controls/button/button.cc b/chromium/ui/views/controls/button/button.cc
index d74e05dc34c..5bb670ce30a 100644
--- a/chromium/ui/views/controls/button/button.cc
+++ b/chromium/ui/views/controls/button/button.cc
@@ -56,6 +56,7 @@ Button::WidgetObserverButtonBridge::WidgetObserverButtonBridge(Button* button)
Button::WidgetObserverButtonBridge::~WidgetObserverButtonBridge() {
if (owner_)
owner_->GetWidget()->RemoveObserver(this);
+ CHECK(!IsInObserverList());
}
void Button::WidgetObserverButtonBridge::OnWidgetPaintAsActiveChanged(
@@ -240,10 +241,12 @@ void Button::SetAnimationDuration(base::TimeDelta duration) {
}
void Button::SetInstallFocusRingOnFocus(bool install) {
- if (install)
+ if (focus_ring_ && !install) {
+ RemoveChildViewT(focus_ring_);
+ focus_ring_ = nullptr;
+ } else if (!focus_ring_ && install) {
focus_ring_ = FocusRing::Install(this);
- else
- focus_ring_.reset();
+ }
}
void Button::SetHotTracked(bool is_hot_tracked) {