diff options
author | antrim@chromium.org <antrim@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-11-21 14:02:09 +0000 |
---|---|---|
committer | antrim@chromium.org <antrim@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-11-21 14:02:09 +0000 |
commit | 83482fbfd131c230019694c77725c58b672ea444 (patch) | |
tree | f008c9419ab680878ef08aa422e2c0f46082dc8d /ash/tooltips/tooltip_controller.cc | |
parent | d38ae9d947c2d0804af4747f34833c72ef897f81 (diff) | |
download | chromium_src-83482fbfd131c230019694c77725c58b672ea444.zip chromium_src-83482fbfd131c230019694c77725c58b672ea444.tar.gz chromium_src-83482fbfd131c230019694c77725c58b672ea444.tar.bz2 |
Introduce SessionStateObserver
Use this in tooltip managers (158027 : Lockscreen leaks information via tooltip),
Use this in launcher animation on full lock in new animations (138171).
BUG=158027,138171
Review URL: https://chromiumcodereview.appspot.com/11416037
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@169033 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ash/tooltips/tooltip_controller.cc')
-rw-r--r-- | ash/tooltips/tooltip_controller.cc | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/ash/tooltips/tooltip_controller.cc b/ash/tooltips/tooltip_controller.cc index c13bcdd..fb0d17f 100644 --- a/ash/tooltips/tooltip_controller.cc +++ b/ash/tooltips/tooltip_controller.cc @@ -10,6 +10,8 @@ #include "ash/shell.h" #include "ash/wm/coordinate_conversion.h" #include "ash/wm/cursor_manager.h" +#include "ash/wm/session_state_controller.h" +#include "ash/wm/session_state_observer.h" #include "base/command_line.h" #include "base/location.h" #include "base/string_split.h" @@ -216,11 +218,15 @@ TooltipController::TooltipController( base::TimeDelta::FromMilliseconds(kTooltipTimeoutMs), this, &TooltipController::TooltipTimerFired); DCHECK(drag_drop_client_); + if (Shell::GetInstance()) + Shell::GetInstance()->session_state_controller()->AddObserver(this); } TooltipController::~TooltipController() { if (tooltip_window_) tooltip_window_->RemoveObserver(this); + if (Shell::GetInstance()) + Shell::GetInstance()->session_state_controller()->RemoveObserver(this); } void TooltipController::UpdateTooltip(aura::Window* target) { @@ -312,6 +318,15 @@ ui::EventResult TooltipController::OnTouchEvent(ui::TouchEvent* event) { return ui::ER_UNHANDLED; } +void TooltipController::OnSessionStateEvent( + SessionStateObserver::EventType event) { + if (event == SessionStateObserver::EVENT_PRELOCK_ANIMATION_STARTED || + event == SessionStateObserver::EVENT_LOCK_ANIMATION_STARTED) { + if (tooltip_.get() && tooltip_->IsVisible()) + tooltip_->Hide(); + } +} + void TooltipController::OnWindowDestroyed(aura::Window* window) { if (tooltip_window_ == window) { tooltip_window_->RemoveObserver(this); |