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 | |
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')
-rw-r--r-- | ash/tooltips/tooltip_controller.cc | 15 | ||||
-rw-r--r-- | ash/tooltips/tooltip_controller.h | 8 |
2 files changed, 22 insertions, 1 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); diff --git a/ash/tooltips/tooltip_controller.h b/ash/tooltips/tooltip_controller.h index 67c6f77..dc21527 100644 --- a/ash/tooltips/tooltip_controller.h +++ b/ash/tooltips/tooltip_controller.h @@ -6,6 +6,7 @@ #define ASH_TOOLTIPS_TOOLTIP_CONTROLLER_H_ #include "ash/ash_export.h" +#include "ash/wm/session_state_observer.h" #include "base/memory/scoped_ptr.h" #include "base/string16.h" #include "base/timer.h" @@ -32,7 +33,8 @@ namespace internal { // TooltipController provides tooltip functionality for aura shell. class ASH_EXPORT TooltipController : public aura::client::TooltipClient, public ui::EventHandler, - public aura::WindowObserver { + public aura::WindowObserver, + public SessionStateObserver { public: explicit TooltipController(aura::client::DragDropClient* drag_drop_client); virtual ~TooltipController(); @@ -46,6 +48,10 @@ class ASH_EXPORT TooltipController : public aura::client::TooltipClient, virtual ui::EventResult OnMouseEvent(ui::MouseEvent* event) OVERRIDE; virtual ui::EventResult OnTouchEvent(ui::TouchEvent* event) OVERRIDE; + // Overridden from SessionStateController. + virtual void OnSessionStateEvent(SessionStateObserver::EventType event) + OVERRIDE; + // Overridden from aura::WindowObserver. virtual void OnWindowDestroyed(aura::Window* window) OVERRIDE; |