summaryrefslogtreecommitdiffstats
path: root/chrome/browser/notifications/balloon_collection_linux.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/notifications/balloon_collection_linux.cc')
-rw-r--r--chrome/browser/notifications/balloon_collection_linux.cc21
1 files changed, 21 insertions, 0 deletions
diff --git a/chrome/browser/notifications/balloon_collection_linux.cc b/chrome/browser/notifications/balloon_collection_linux.cc
index 08354a0..099193c 100644
--- a/chrome/browser/notifications/balloon_collection_linux.cc
+++ b/chrome/browser/notifications/balloon_collection_linux.cc
@@ -67,6 +67,27 @@ bool BalloonCollectionImpl::IsCursorInBalloonCollection() const {
return bounds.Contains(cursor);
}
+void BalloonCollectionImpl::SetPositionPreference(
+ PositionPreference position) {
+ if (position == DEFAULT_POSITION)
+ position = LOWER_RIGHT;
+
+ // All positioning schemes are vertical, and linux
+ // uses the normal screen orientation.
+ if (position == UPPER_RIGHT)
+ layout_.set_placement(Layout::VERTICALLY_FROM_TOP_RIGHT);
+ else if (position == UPPER_LEFT)
+ layout_.set_placement(Layout::VERTICALLY_FROM_TOP_LEFT);
+ else if (position == LOWER_LEFT)
+ layout_.set_placement(Layout::VERTICALLY_FROM_BOTTOM_LEFT);
+ else if (position == LOWER_RIGHT)
+ layout_.set_placement(Layout::VERTICALLY_FROM_BOTTOM_RIGHT);
+ else
+ NOTREACHED();
+
+ PositionBalloons(true);
+}
+
// static
BalloonCollection* BalloonCollection::Create() {
return new BalloonCollectionImpl();