diff options
author | dewittj@chromium.org <dewittj@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-03-14 22:36:45 +0000 |
---|---|---|
committer | dewittj@chromium.org <dewittj@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-03-14 22:36:45 +0000 |
commit | e04caacb15e32db744d41e57dcdba4a6bf80fff7 (patch) | |
tree | da35fdcc0e83c49366957df0e77e1f00da2ffafd /ui/message_center | |
parent | 501b5740bca518414fa38567d10c17312924c28b (diff) | |
download | chromium_src-e04caacb15e32db744d41e57dcdba4a6bf80fff7.zip chromium_src-e04caacb15e32db744d41e57dcdba4a6bf80fff7.tar.gz chromium_src-e04caacb15e32db744d41e57dcdba4a6bf80fff7.tar.bz2 |
Switch Windows to use the MessagePopupCollection
Windows is currently using the old-style MessagePopupBubble which
couldn't display transparent space between the messages.
r=mukai@chromium.org
TEST=WebNotificationTrayWinTest.*
BUG=181235
Review URL: https://chromiumcodereview.appspot.com/12667018
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@188217 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ui/message_center')
-rw-r--r-- | ui/message_center/message_center.h | 3 | ||||
-rw-r--r-- | ui/message_center/views/message_popup_collection.cc | 18 |
2 files changed, 18 insertions, 3 deletions
diff --git a/ui/message_center/message_center.h b/ui/message_center/message_center.h index 58575bd..1ddb29e 100644 --- a/ui/message_center/message_center.h +++ b/ui/message_center/message_center.h @@ -171,6 +171,9 @@ class MESSAGE_CENTER_EXPORT MessageCenter : public NotificationChangeObserver, virtual ~MessageCenter(); private: + FRIEND_TEST_ALL_PREFIXES(WebNotificationTrayWinTest, + ManyMessageCenterNotifications); + FRIEND_TEST_ALL_PREFIXES(WebNotificationTrayWinTest, ManyPopupNotifications); // Calls OnMessageCenterChanged on each observer. void NotifyMessageCenterChanged(bool new_notification); diff --git a/ui/message_center/views/message_popup_collection.cc b/ui/message_center/views/message_popup_collection.cc index c67bc3d..b6c3001 100644 --- a/ui/message_center/views/message_popup_collection.cc +++ b/ui/message_center/views/message_popup_collection.cc @@ -47,7 +47,10 @@ class ToastContentsView : public views::WidgetDelegateView { views::Widget::InitParams params( views::Widget::InitParams::TYPE_WINDOW_FRAMELESS); params.keep_on_top = true; - params.context = context; + if (context) + params.context = context; + else + params.top_level = true; params.transparent = true; // The origin of the initial bounds are set to (0, 0). It'll then moved by // MessagePopupCollection. @@ -146,8 +149,17 @@ void MessagePopupCollection::UpdatePopups() { return; } - gfx::Screen* screen = gfx::Screen::GetScreenFor(context_); - gfx::Rect work_area = screen->GetDisplayNearestWindow(context_).work_area(); + gfx::Rect work_area; + if (!context_) { + // On Win+Aura, we don't have a context since the popups currently show up + // on the Windows desktop, not in the Aura/Ash desktop. This code will + // display the popups on the primary display. + gfx::Screen* screen = gfx::Screen::GetNativeScreen(); + work_area = screen->GetPrimaryDisplay().work_area(); + } else { + gfx::Screen* screen = gfx::Screen::GetScreenFor(context_); + work_area = screen->GetDisplayNearestWindow(context_).work_area(); + } std::set<std::string> old_toast_ids; for (ToastContainer::iterator iter = toasts_.begin(); iter != toasts_.end(); |