| Index: ash/system/web_notification/web_notification_tray.cc
|
| diff --git a/ash/system/web_notification/web_notification_tray.cc b/ash/system/web_notification/web_notification_tray.cc
|
| index 6c1043c49ddb85a969b4d8ecf4adefa02cb542db..f70d192127accc554662434cf27eff666d30ebec 100644
|
| --- a/ash/system/web_notification/web_notification_tray.cc
|
| +++ b/ash/system/web_notification/web_notification_tray.cc
|
| @@ -21,6 +21,7 @@
|
| #include "ui/base/models/simple_menu_model.h"
|
| #include "ui/base/resource/resource_bundle.h"
|
| #include "ui/gfx/image/image_skia_operations.h"
|
| +#include "ui/gfx/screen.h"
|
| #include "ui/views/controls/button/button.h"
|
| #include "ui/views/controls/button/menu_button.h"
|
| #include "ui/views/controls/button/menu_button_listener.h"
|
| @@ -761,6 +762,10 @@ class WebNotificationTray::Bubble : public TrayBubbleView::Host,
|
| base::TimeDelta::FromMilliseconds(kUpdateDelayMs));
|
| }
|
|
|
| + bool IsVisible() const {
|
| + return bubble_widget_ && bubble_widget_->IsVisible();
|
| + }
|
| +
|
| views::Widget* bubble_widget() const { return bubble_widget_; }
|
| TrayBubbleView* bubble_view() const { return bubble_view_; }
|
|
|
| @@ -772,10 +777,12 @@ class WebNotificationTray::Bubble : public TrayBubbleView::Host,
|
|
|
| virtual void OnMouseEnteredView() OVERRIDE {
|
| StopAutoCloseTimer();
|
| + tray_->UpdateShouldShowLauncher();
|
| }
|
|
|
| virtual void OnMouseExitedView() OVERRIDE {
|
| StartAutoCloseTimer();
|
| + tray_->UpdateShouldShowLauncher();
|
| }
|
|
|
| virtual void OnClickedOutsideView() OVERRIDE {
|
| @@ -907,6 +914,7 @@ void WebNotificationTray::ShowMessageCenterBubble() {
|
| message_center_bubble_.reset(
|
| new Bubble(this, Bubble::BUBBLE_TYPE_MESAGE_CENTER));
|
| status_area_widget()->SetHideSystemNotifications(true);
|
| + UpdateShouldShowLauncher();
|
| }
|
|
|
| void WebNotificationTray::HideMessageCenterBubble() {
|
| @@ -916,6 +924,7 @@ void WebNotificationTray::HideMessageCenterBubble() {
|
| show_message_center_on_unlock_ = false;
|
| notification_list_->SetIsVisible(false);
|
| status_area_widget()->SetHideSystemNotifications(false);
|
| + UpdateShouldShowLauncher();
|
| }
|
|
|
| void WebNotificationTray::ShowNotificationBubble() {
|
| @@ -954,6 +963,17 @@ void WebNotificationTray::UpdateAfterLoginStatusChange(
|
| UpdateTray();
|
| }
|
|
|
| +bool WebNotificationTray::IsMessageCenterBubbleVisible() const {
|
| + return (message_center_bubble() && message_center_bubble_->IsVisible());
|
| +}
|
| +
|
| +bool WebNotificationTray::IsMouseInNotificationBubble() const {
|
| + if (!notification_bubble())
|
| + return false;
|
| + return notification_bubble_->bubble_view()->GetBoundsInScreen().Contains(
|
| + gfx::Screen::GetCursorScreenPoint());
|
| +}
|
| +
|
| void WebNotificationTray::SetShelfAlignment(ShelfAlignment alignment) {
|
| if (alignment == shelf_alignment())
|
| return;
|
|
|