Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(476)

Unified Diff: ui/views/corewm/tooltip_controller.cc

Issue 15754002: ash: Add functionality to specify how long a tooltip is shown for a window. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ui/views/corewm/tooltip_controller.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ui/views/corewm/tooltip_controller.cc
diff --git a/ui/views/corewm/tooltip_controller.cc b/ui/views/corewm/tooltip_controller.cc
index 6a0608ea33ce299deb699c4f6108760cce28a3eb..5aee40db2bc58d8c13370a4bec7ed21b81bb8a36 100644
--- a/ui/views/corewm/tooltip_controller.cc
+++ b/ui/views/corewm/tooltip_controller.cc
@@ -48,7 +48,7 @@ const size_t kMaxLines = 10;
// difference in font metrics. Rationalize this.
const int kTooltipVerticalPadding = 2;
const int kTooltipTimeoutMs = 500;
-const int kTooltipShownTimeoutMs = 10000;
+const int kDefaultTooltipShownTimeoutMs = 10000;
// FIXME: get cursor offset from actual cursor size.
const int kCursorOffsetX = 10;
@@ -230,6 +230,11 @@ void TooltipController::UpdateTooltip(aura::Window* target) {
}
}
+void TooltipController::SetTooltipShownTimeout(aura::Window* target,
+ int timeout_in_ms) {
+ tooltip_shown_timeout_map_[target] = timeout_in_ms;
+}
+
void TooltipController::SetTooltipsEnabled(bool enable) {
if (tooltips_enabled_ == enable)
return;
@@ -309,6 +314,7 @@ void TooltipController::OnCancelMode(ui::CancelModeEvent* event) {
void TooltipController::OnWindowDestroyed(aura::Window* window) {
if (tooltip_window_ == window) {
+ tooltip_shown_timeout_map_.erase(tooltip_window_);
tooltip_window_->RemoveObserver(this);
tooltip_window_ = NULL;
}
@@ -477,9 +483,12 @@ void TooltipController::UpdateIfRequired() {
} else {
GetTooltip()->SetText(tooltip_window_, tooltip_text_, widget_loc);
GetTooltip()->Show();
- tooltip_shown_timer_.Start(FROM_HERE,
- base::TimeDelta::FromMilliseconds(kTooltipShownTimeoutMs),
- this, &TooltipController::TooltipShownTimerFired);
+ int timeout = GetTooltipShownTimeout();
+ if (timeout > 0) {
+ tooltip_shown_timer_.Start(FROM_HERE,
+ base::TimeDelta::FromMilliseconds(timeout),
+ this, &TooltipController::TooltipShownTimerFired);
+ }
}
}
}
@@ -515,5 +524,13 @@ bool TooltipController::IsCursorVisible() {
return !cursor_client || cursor_client->IsCursorVisible();
}
+int TooltipController::GetTooltipShownTimeout() {
+ std::map<aura::Window*, int>::const_iterator it =
+ tooltip_shown_timeout_map_.find(tooltip_window_);
+ if (it == tooltip_shown_timeout_map_.end())
+ return kDefaultTooltipShownTimeoutMs;
+ return it->second;
+}
+
} // namespace corewm
} // namespace views
« no previous file with comments | « ui/views/corewm/tooltip_controller.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698