summaryrefslogtreecommitdiffstats
path: root/ash/tooltips/tooltip_controller.cc
diff options
context:
space:
mode:
authorantrim@chromium.org <antrim@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-11-21 14:02:09 +0000
committerantrim@chromium.org <antrim@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-11-21 14:02:09 +0000
commit83482fbfd131c230019694c77725c58b672ea444 (patch)
treef008c9419ab680878ef08aa422e2c0f46082dc8d /ash/tooltips/tooltip_controller.cc
parentd38ae9d947c2d0804af4747f34833c72ef897f81 (diff)
downloadchromium_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.cc15
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);