Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(178)

Unified Diff: chrome/browser/views/location_bar_view.cc

Issue 1578021: Shift omnibox dropdown in and up on Windows, and square off the top, so it co... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 10 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/views/location_bar_view.cc
===================================================================
--- chrome/browser/views/location_bar_view.cc (revision 43972)
+++ chrome/browser/views/location_bar_view.cc (working copy)
@@ -17,7 +17,6 @@
#include "chrome/app/chrome_dll_resource.h"
#include "chrome/browser/alternate_nav_url_fetcher.h"
#include "chrome/browser/browser_list.h"
-#include "chrome/browser/bubble_positioner.h"
#include "chrome/browser/command_updater.h"
#include "chrome/browser/content_setting_bubble_model.h"
#include "chrome/browser/content_setting_image_model.h"
@@ -126,8 +125,7 @@
CommandUpdater* command_updater,
ToolbarModel* model,
Delegate* delegate,
- bool popup_window_mode,
- const BubblePositioner* bubble_positioner)
+ bool popup_window_mode)
: profile_(profile),
command_updater_(command_updater),
model_(model),
@@ -140,8 +138,7 @@
type_to_search_view_(l10n_util::GetString(IDS_OMNIBOX_EMPTY_TEXT)),
star_view_(command_updater),
popup_window_mode_(popup_window_mode),
- first_run_bubble_(this),
- bubble_positioner_(bubble_positioner) {
+ first_run_bubble_(this) {
DCHECK(profile_);
SetID(VIEW_ID_LOCATION_BAR);
SetFocusable(true);
@@ -175,10 +172,10 @@
#if defined(OS_WIN)
location_entry_.reset(new AutocompleteEditViewWin(font_, this, model_, this,
GetWidget()->GetNativeView(), profile_, command_updater_,
- popup_window_mode_, bubble_positioner_));
+ popup_window_mode_, this));
#else
location_entry_.reset(new AutocompleteEditViewGtk(this, model_, profile_,
- command_updater_, popup_window_mode_, bubble_positioner_));
+ command_updater_, popup_window_mode_, this));
location_entry_->Init();
// Make all the children of the widget visible. NOTE: this won't display
// anything, it just toggles the visible flag.
@@ -217,9 +214,8 @@
security_info_label_.set_parent_owned(false);
for (int i = 0; i < CONTENT_SETTINGS_NUM_TYPES; ++i) {
- ContentSettingImageView* content_blocked_view =
- new ContentSettingImageView(static_cast<ContentSettingsType>(i), this,
- profile_, bubble_positioner_);
+ ContentSettingImageView* content_blocked_view = new ContentSettingImageView(
+ static_cast<ContentSettingsType>(i), this, profile_);
content_setting_views_.push_back(content_blocked_view);
AddChildView(content_blocked_view);
content_blocked_view->SetVisible(false);
@@ -402,13 +398,14 @@
}
void LocationBarView::ShowStarBubble(const GURL& url, bool newly_bookmarked) {
- gfx::Rect bounds(bubble_positioner_->GetLocationStackBounds());
- gfx::Point location;
- views::View::ConvertPointToScreen(&star_view_, &location);
- bounds.set_x(location.x());
- bounds.set_width(star_view_.width());
- browser::ShowBookmarkBubbleView(GetWindow(), bounds, &star_view_, profile_,
- url, newly_bookmarked);
+ gfx::Rect screen_bounds(star_view_.GetImageBounds());
+ // Compensate for some built-in padding in the Star image.
+ screen_bounds.Inset(1, 1, 1, 2);
+ gfx::Point origin(screen_bounds.origin());
+ views::View::ConvertPointToScreen(&star_view_, &origin);
+ screen_bounds.set_origin(origin);
+ browser::ShowBookmarkBubbleView(GetWindow(), screen_bounds, &star_view_,
+ profile_, url, newly_bookmarked);
}
gfx::Size LocationBarView::GetPreferredSize() {
@@ -1181,15 +1178,13 @@
LocationBarView::ContentSettingImageView::ContentSettingImageView(
ContentSettingsType content_type,
const LocationBarView* parent,
- Profile* profile,
- const BubblePositioner* bubble_positioner)
+ Profile* profile)
: content_setting_image_model_(
ContentSettingImageModel::CreateContentSettingImageModel(
content_type)),
parent_(parent),
profile_(profile),
- info_bubble_(NULL),
- bubble_positioner_(bubble_positioner) {
+ info_bubble_(NULL) {
}
LocationBarView::ContentSettingImageView::~ContentSettingImageView() {
@@ -1230,11 +1225,10 @@
if (!tab_contents)
return;
- gfx::Rect bounds(bubble_positioner_->GetLocationStackBounds());
- gfx::Point location;
- views::View::ConvertPointToScreen(this, &location);
- bounds.set_x(location.x());
- bounds.set_width(width());
+ gfx::Rect screen_bounds(GetImageBounds());
+ gfx::Point origin(screen_bounds.origin());
+ views::View::ConvertPointToScreen(this, &origin);
+ screen_bounds.set_origin(origin);
ContentSettingBubbleContents* bubble_contents =
new ContentSettingBubbleContents(
ContentSettingBubbleModel::CreateContentSettingBubbleModel(
@@ -1242,7 +1236,8 @@
content_setting_image_model_->get_content_settings_type()),
profile_, tab_contents);
DCHECK(!info_bubble_);
- info_bubble_ = InfoBubble::Show(GetWindow(), bounds, bubble_contents, this);
+ info_bubble_ =
+ InfoBubble::Show(GetWindow(), screen_bounds, bubble_contents, this);
bubble_contents->set_info_bubble(info_bubble_);
}
@@ -1326,19 +1321,17 @@
if (popup_showing)
return;
- View* parent = GetParent();
- gfx::Point origin;
- View::ConvertPointToScreen(parent, &origin);
- gfx::Rect rect = parent->bounds();
- rect.set_x(origin.x());
- rect.set_y(origin.y());
+ gfx::Rect screen_bounds(GetImageBounds());
+ gfx::Point origin(screen_bounds.origin());
+ View::ConvertPointToScreen(this, &origin);
+ screen_bounds.set_origin(origin);
popup_ = ExtensionPopup::Show(
page_action_->GetPopupUrl(current_tab_id_),
browser,
browser->profile(),
browser->window()->GetNativeHandle(),
- rect,
+ screen_bounds,
BubbleBorder::TOP_RIGHT,
true, // Activate the popup window.
inspect_with_devtools,
@@ -1371,20 +1364,20 @@
button = 2;
} else if (event.IsRightMouseButton()) {
// Get the top left point of this button in screen coordinates.
- gfx::Point point = gfx::Point(0, 0);
- ConvertPointToScreen(this, &point);
+ gfx::Point menu_origin;
+ ConvertPointToScreen(this, &menu_origin);
// Make the menu appear below the button.
- point.Offset(0, height());
+ menu_origin.Offset(0, height());
Extension* extension = profile_->GetExtensionsService()->GetExtensionById(
page_action()->extension_id(), false);
Browser* browser = BrowserView::GetBrowserViewForNativeWindow(
platform_util::GetTopLevel(GetWidget()->GetNativeView()))->browser();
- context_menu_contents_.reset(new ExtensionContextMenuModel(
- extension, browser, this));
+ context_menu_contents_.reset(
+ new ExtensionContextMenuModel(extension, browser, this));
context_menu_menu_.reset(new views::Menu2(context_menu_contents_.get()));
- context_menu_menu_->RunContextMenuAt(point);
+ context_menu_menu_->RunContextMenuAt(menu_origin);
return;
}
@@ -1419,8 +1412,8 @@
current_tab_id_ = ExtensionTabUtil::GetTabId(contents);
current_url_ = url;
- bool visible = preview_enabled_ ||
- page_action_->GetIsVisible(current_tab_id_);
+ bool visible =
+ preview_enabled_ || page_action_->GetIsVisible(current_tab_id_);
if (visible) {
// Set the tooltip.
tooltip_ = page_action_->GetTitle(current_tab_id_);

Powered by Google App Engine
This is Rietveld 408576698