summaryrefslogtreecommitdiffstats
path: root/chrome
diff options
context:
space:
mode:
Diffstat (limited to 'chrome')
-rw-r--r--chrome/browser/views/info_bubble.cc18
1 files changed, 8 insertions, 10 deletions
diff --git a/chrome/browser/views/info_bubble.cc b/chrome/browser/views/info_bubble.cc
index 2f7091f..908aa54 100644
--- a/chrome/browser/views/info_bubble.cc
+++ b/chrome/browser/views/info_bubble.cc
@@ -9,6 +9,7 @@
#include "app/resource_bundle.h"
#include "chrome/browser/browser_window.h"
#include "chrome/browser/views/frame/browser_view.h"
+#include "chrome/browser/window_sizer.h"
#include "chrome/common/notification_service.h"
#include "chrome/common/notification_type.h"
#include "grit/theme_resources.h"
@@ -16,7 +17,6 @@
#include "views/window/window.h"
#if defined(OS_WIN)
-#include "app/win_util.h"
#include "base/win_util.h"
#endif
@@ -83,7 +83,7 @@ InfoBubble* InfoBubble::Show(views::Window* parent,
#if defined(OS_WIN)
window->ShowWindow(SW_SHOW);
#else
- NOTREACHED();
+ static_cast<WidgetGtk*>(window)->Show();
#endif
return window;
}
@@ -134,6 +134,8 @@ void InfoBubble::Init(views::Window* parent,
#if defined(OS_WIN)
WidgetWin::Init(parent->GetNativeWindow(), bounds, true);
+#else
+ WidgetGtk::Init(GTK_WIDGET(parent->GetNativeWindow()), bounds, true);
#endif
SetContentsView(content_view_);
// The preferred size may differ when parented. Ask for the bounds again
@@ -148,8 +150,6 @@ void InfoBubble::Init(views::Window* parent,
SWP_NOACTIVATE | SWP_NOREDRAW | SWP_NOZORDER);
// Invoke ChangeSize, otherwise layered window isn't updated correctly.
ChangeSize(0, CSize(parented_bounds.width(), parented_bounds.height()));
-#else
- NOTIMPLEMENTED();
#endif
}
@@ -254,12 +254,10 @@ InfoBubble::ContentView::ContentView(views::View* content, InfoBubble* host)
gfx::Rect InfoBubble::ContentView::CalculateWindowBoundsAndAjust(
const gfx::Rect& position_relative_to) {
-#if defined(OS_WIN)
- gfx::Rect monitor_bounds = win_util::GetMonitorBoundsForRect(
- position_relative_to);
-#else
- gfx::Rect monitor_bounds;
-#endif
+ scoped_ptr<WindowSizer::MonitorInfoProvider> monitor_provider(
+ WindowSizer::CreateDefaultMonitorInfoProvider());
+ gfx::Rect monitor_bounds(
+ monitor_provider->GetMonitorWorkAreaMatching(position_relative_to));
// Calculate the bounds using TOP_LEFT (the default).
gfx::Rect window_bounds = CalculateWindowBounds(position_relative_to);
if (monitor_bounds.IsEmpty() || monitor_bounds.Contains(window_bounds))