| Index: chrome/browser/views/app_launcher.cc
|
| ===================================================================
|
| --- chrome/browser/views/app_launcher.cc (revision 43972)
|
| +++ chrome/browser/views/app_launcher.cc (working copy)
|
| @@ -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 @@
|
| // 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 @@
|
| // 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 @@
|
| 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 @@
|
| 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 @@
|
| 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 @@
|
| 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 @@
|
| 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);
|
| };
|
|
|
|
|