Index: ui/views/corewm/tooltip_controller.cc |
diff --git a/ui/views/corewm/tooltip_controller.cc b/ui/views/corewm/tooltip_controller.cc |
index 500466fdf4d646c69ccba8f31c98ef85a8f9496c..e947ded0f678a9d280386458e00ce0826e26d3f2 100644 |
--- a/ui/views/corewm/tooltip_controller.cc |
+++ b/ui/views/corewm/tooltip_controller.cc |
@@ -128,10 +128,11 @@ TooltipController::~TooltipController() { |
tooltip_window_->RemoveObserver(this); |
} |
-void TooltipController::UpdateTooltip(aura::Window* target) { |
+void TooltipController::UpdateTooltip(aura::Window* target, |
+ bool force) { |
// If tooltip is visible, we may want to hide it. If it is not, we are ok. |
if (tooltip_window_ == target && tooltip_->IsVisible()) |
- UpdateIfRequired(); |
+ UpdateIfRequired(force); |
// Reset |tooltip_window_at_mouse_press_| if the moving within the same window |
// but over a region that has different tooltip text. By resetting |
@@ -166,7 +167,7 @@ void TooltipController::SetTooltipsEnabled(bool enable) { |
if (tooltips_enabled_ == enable) |
return; |
tooltips_enabled_ = enable; |
- UpdateTooltip(tooltip_window_); |
+ UpdateTooltip(tooltip_window_, false); |
} |
void TooltipController::OnKeyEvent(ui::KeyEvent* event) { |
@@ -192,7 +193,7 @@ void TooltipController::OnMouseEvent(ui::MouseEvent* event) { |
tooltip_timer_.Reset(); |
if (tooltip_->IsVisible()) |
- UpdateIfRequired(); |
+ UpdateIfRequired(false); |
break; |
} |
case ui::ET_MOUSE_PRESSED: |
@@ -239,9 +240,7 @@ void TooltipController::OnWindowDestroyed(aura::Window* window) { |
//////////////////////////////////////////////////////////////////////////////// |
// TooltipController private: |
-void TooltipController::TooltipTimerFired() { |
- UpdateIfRequired(); |
-} |
+void TooltipController::TooltipTimerFired() { UpdateIfRequired(false); } |
void TooltipController::TooltipShownTimerFired() { |
tooltip_->Hide(); |
@@ -252,7 +251,7 @@ void TooltipController::TooltipShownTimerFired() { |
tooltip_timer_.Stop(); |
} |
-void TooltipController::UpdateIfRequired() { |
+void TooltipController::UpdateIfRequired(bool force) { |
if (!tooltips_enabled_ || |
aura::Env::GetInstance()->IsMouseButtonDown() || |
IsDragDropInProgress() || !IsCursorVisible()) { |
@@ -280,7 +279,7 @@ void TooltipController::UpdateIfRequired() { |
// want to update the tooltip because the timer has fired. |
// If we come here from UpdateTooltip(), we have already checked for tooltip |
// visibility and this check below will have no effect. |
- if (tooltip_text_ != tooltip_text || !tooltip_->IsVisible()) { |
+ if (tooltip_text_ != tooltip_text || !tooltip_->IsVisible() || force) { |
tooltip_shown_timer_.Stop(); |
tooltip_text_ = tooltip_text; |
base::string16 trimmed_text(tooltip_text_); |