diff options
Diffstat (limited to 'chrome/browser/views/app_launcher.cc')
-rw-r--r-- | chrome/browser/views/app_launcher.cc | 42 |
1 files changed, 21 insertions, 21 deletions
diff --git a/chrome/browser/views/app_launcher.cc b/chrome/browser/views/app_launcher.cc index fd55086..35c8b07 100644 --- a/chrome/browser/views/app_launcher.cc +++ b/chrome/browser/views/app_launcher.cc @@ -16,7 +16,6 @@ #include "chrome/browser/autocomplete/autocomplete_edit_view.h" #include "chrome/browser/browser.h" #include "chrome/browser/browser_window.h" -#include "chrome/browser/bubble_positioner.h" #include "chrome/browser/in_process_webkit/webkit_context.h" #include "chrome/browser/profile.h" #include "chrome/browser/renderer_host/render_view_host.h" @@ -54,8 +53,9 @@ const int kNavigationEntryYMargin = 1; // Padding between the navigation bar and the render view contents. const int kNavigationBarBottomPadding = 3; -// NavigationBar size. +// NavigationBar constants. const int kNavigationBarHeight = 25; +const int kNavigationBarBorderThickness = 1; // The delta applied to the default font size for the omnibox. const int kAutocompleteEditFontDelta = 3; @@ -147,8 +147,7 @@ void TabContentsDelegateImpl::OpenURLFromTab(TabContents* source, // mode. class NavigationBar : public views::View, - public AutocompleteEditController, - public BubblePositioner { + public AutocompleteEditController { public: explicit NavigationBar(AppLauncher* app_launcher) : app_launcher_(app_launcher), @@ -156,7 +155,12 @@ class NavigationBar : public views::View, SetFocusable(true); location_entry_view_ = new views::NativeViewHost; AddChildView(location_entry_view_); - set_border(views::Border::CreateSolidBorder(1, SK_ColorGRAY)); + set_border(views::Border::CreateSolidBorder(kNavigationBarBorderThickness, + SK_ColorGRAY)); + + AddChildView(&popup_positioning_view_); + popup_positioning_view_.SetVisible(false); + popup_positioning_view_.set_parent_owned(false); } virtual ~NavigationBar() { @@ -186,7 +190,8 @@ class NavigationBar : public views::View, new AutocompleteEditViewWin(font, this, browser->toolbar_model(), this, GetWidget()->GetNativeView(), browser->profile(), - browser->command_updater(), false, this); + browser->command_updater(), false, + &popup_positioning_view_); location_entry_.reset(autocomplete_view); autocomplete_view->Update(NULL); // The Update call above sets the autocomplete text to the current one in @@ -196,7 +201,8 @@ class NavigationBar : public views::View, AutocompleteEditViewGtk* autocomplete_view = new AutocompleteEditViewGtk(this, browser->toolbar_model(), browser->profile(), - browser->command_updater(), false, this); + browser->command_updater(), false, + &popup_positioning_view_); autocomplete_view->Init(); gtk_widget_show_all(autocomplete_view->GetNativeView()); gtk_widget_hide(autocomplete_view->GetNativeView()); @@ -216,21 +222,10 @@ class NavigationBar : public views::View, bounds.width() - 2 * (kNavigationEntryPadding + kNavigationEntryXMargin), bounds.height() - kNavigationEntryYMargin * 2); - } - // BubblePositioner implementation. - virtual gfx::Rect GetLocationStackBounds() const { - gfx::Rect bounds = location_entry_view_->GetBounds( - views::View::APPLY_MIRRORING_TRANSFORMATION); - gfx::Point origin(bounds.x(), bounds.bottom() + kNavigationEntryPadding); - views::View::ConvertPointToScreen(this, &origin); - gfx::Rect rect = gfx::Rect(origin, gfx::Size(500, 0)); - if (UILayoutIsRightToLeft()) { - // Align the window to the right side of the entry view when - // UI is RTL mode. - rect.set_x(rect.x() - (rect.width() - location_entry_view_->width())); - } - return rect; + gfx::Rect popup_positioning_bounds(bounds); + popup_positioning_bounds.Inset(0, -(kNavigationBarBorderThickness + 1)); + popup_positioning_view_.SetBounds(popup_positioning_bounds); } // AutocompleteController implementation. @@ -270,6 +265,11 @@ class NavigationBar : public views::View, NOTIMPLEMENTED(); #endif + // This invisible view is provided to the popup in place of |this|, so the + // popup can size itself against it using the same offsets it does with the + // LocationBarView. + views::View popup_positioning_view_; + DISALLOW_COPY_AND_ASSIGN(NavigationBar); }; |