summaryrefslogtreecommitdiffstats
path: root/ui/message_center
diff options
context:
space:
mode:
authordewittj@chromium.org <dewittj@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-03-14 22:36:45 +0000
committerdewittj@chromium.org <dewittj@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-03-14 22:36:45 +0000
commite04caacb15e32db744d41e57dcdba4a6bf80fff7 (patch)
treeda35fdcc0e83c49366957df0e77e1f00da2ffafd /ui/message_center
parent501b5740bca518414fa38567d10c17312924c28b (diff)
downloadchromium_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.h3
-rw-r--r--ui/message_center/views/message_popup_collection.cc18
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();