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.cc32
1 files changed, 32 insertions, 0 deletions
diff --git a/chrome/browser/notifications/balloon_collection_linux.cc b/chrome/browser/notifications/balloon_collection_linux.cc
index c82b3c1..a499292 100644
--- a/chrome/browser/notifications/balloon_collection_linux.cc
+++ b/chrome/browser/notifications/balloon_collection_linux.cc
@@ -30,6 +30,38 @@ int BalloonCollectionImpl::Layout::VerticalEdgeMargin() const {
return 5;
}
+void BalloonCollectionImpl::DidProcessEvent(GdkEvent* event) {
+ switch (event->type) {
+ case GDK_MOTION_NOTIFY:
+ case GDK_LEAVE_NOTIFY:
+ HandleMouseMoveEvent();
+ break;
+ default:
+ break;
+ }
+}
+
+bool BalloonCollectionImpl::IsCursorInBalloonCollection() const {
+ if (balloons_.empty())
+ return false;
+
+ gfx::Point upper_left = balloons_[balloons_.size() - 1]->GetPosition();
+ gfx::Point lower_right = layout_.GetLayoutOrigin();
+
+ gfx::Rect bounds = gfx::Rect(upper_left.x(),
+ upper_left.y(),
+ lower_right.x() - upper_left.x(),
+ lower_right.y() - upper_left.y());
+
+ GdkScreen* screen = gdk_screen_get_default();
+ GdkDisplay* display = gdk_screen_get_display(screen);
+ gint x, y;
+ gdk_display_get_pointer(display, NULL, &x, &y, NULL);
+ gfx::Point cursor(x, y);
+
+ return bounds.Contains(cursor);
+}
+
// static
BalloonCollection* BalloonCollection::Create() {
return new BalloonCollectionImpl();