diff options
Diffstat (limited to 'views/widget')
-rw-r--r-- | views/widget/native_widget_aura.cc | 3 | ||||
-rw-r--r-- | views/widget/tooltip_manager_views.cc | 12 | ||||
-rw-r--r-- | views/widget/tooltip_manager_views.h | 9 |
3 files changed, 5 insertions, 19 deletions
diff --git a/views/widget/native_widget_aura.cc b/views/widget/native_widget_aura.cc index 91bf443..6b100b1 100644 --- a/views/widget/native_widget_aura.cc +++ b/views/widget/native_widget_aura.cc @@ -540,6 +540,9 @@ void NativeWidgetAura::OnPaint(gfx::Canvas* canvas) { void NativeWidgetAura::OnWindowDestroying() { delegate_->OnNativeWidgetDestroying(); + + // If the aura::Window is destroyed, we can no longer show tooltips. + tooltip_manager_.reset(); } void NativeWidgetAura::OnWindowDestroyed() { diff --git a/views/widget/tooltip_manager_views.cc b/views/widget/tooltip_manager_views.cc index a7d367b..a8b6d97 100644 --- a/views/widget/tooltip_manager_views.cc +++ b/views/widget/tooltip_manager_views.cc @@ -75,8 +75,7 @@ int TooltipManager::GetMaxWidth(int x, int y) { TooltipManagerViews::TooltipManagerViews(views::View* root_view) : root_view_(root_view), - tooltip_view_(NULL), - widget_closed_(false) { + tooltip_view_(NULL) { tooltip_label_.set_background( views::Background::CreateSolidBackground(kTooltipBackground)); tooltip_widget_.reset(CreateTooltip()); @@ -87,7 +86,6 @@ TooltipManagerViews::TooltipManagerViews(views::View* root_view) base::TimeDelta::FromMilliseconds(kTooltipTimeoutMs), this, &TooltipManagerViews::TooltipTimerFired); MessageLoopForUI::current()->AddObserver(this); - root_view_->GetWidget()->AddObserver(this); } TooltipManagerViews::~TooltipManagerViews() { @@ -152,11 +150,6 @@ void TooltipManagerViews::DidProcessEvent(const base::NativeEvent& event) { } #endif -void TooltipManagerViews::OnWidgetClosing(Widget* widget) { - tooltip_timer_.Stop(); - widget_closed_ = true; -} - void TooltipManagerViews::TooltipTimerFired() { UpdateIfRequired(curr_mouse_pos_.x(), curr_mouse_pos_.y(), false); } @@ -179,9 +172,6 @@ View* TooltipManagerViews::GetViewForTooltip(int x, int y, bool for_keyboard) { } void TooltipManagerViews::UpdateIfRequired(int x, int y, bool for_keyboard) { - if (widget_closed_) - return; - View* view = GetViewForTooltip(x, y, for_keyboard); string16 tooltip_text; if (view) diff --git a/views/widget/tooltip_manager_views.h b/views/widget/tooltip_manager_views.h index d98914b..3d22662 100644 --- a/views/widget/tooltip_manager_views.h +++ b/views/widget/tooltip_manager_views.h @@ -27,8 +27,7 @@ class Widget; // TooltipManager implementation for Views. class TooltipManagerViews : public TooltipManager, - public MessageLoopForUI::Observer, - public Widget::Observer { + public MessageLoopForUI::Observer { public: explicit TooltipManagerViews(views::View* root_view); virtual ~TooltipManagerViews(); @@ -49,9 +48,6 @@ class TooltipManagerViews : public TooltipManager, virtual void DidProcessEvent(const base::NativeEvent& event) OVERRIDE; #endif - // Widget::Observer - virtual void OnWidgetClosing(Widget* widget) OVERRIDE; - private: void TooltipTimerFired(); View* GetViewForTooltip(int x, int y, bool for_keyboard); @@ -84,9 +80,6 @@ class TooltipManagerViews : public TooltipManager, gfx::Point curr_mouse_pos_; base::RepeatingTimer<TooltipManagerViews> tooltip_timer_; - // true when the widget that owns us has closed. - bool widget_closed_; - DISALLOW_COPY_AND_ASSIGN(TooltipManagerViews); }; |