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

Side by Side Diff: chrome/browser/ui/views/location_bar/location_bar_view.cc

Issue 1627543002: Anchor the infobar arrow to the LocationIconView correctly. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: pkasting feedback Created 4 years, 11 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/ui/views/location_bar/location_bar_view.h" 5 #include "chrome/browser/ui/views/location_bar/location_bar_view.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <map> 8 #include <map>
9 9
10 #include "base/i18n/rtl.h" 10 #include "base/i18n/rtl.h"
(...skipping 427 matching lines...) Expand 10 before | Expand all | Expand 10 after
438 void LocationBarView::SetShowFocusRect(bool show) { 438 void LocationBarView::SetShowFocusRect(bool show) {
439 show_focus_rect_ = show; 439 show_focus_rect_ = show;
440 SchedulePaint(); 440 SchedulePaint();
441 } 441 }
442 442
443 void LocationBarView::SelectAll() { 443 void LocationBarView::SelectAll() {
444 omnibox_view_->SelectAll(true); 444 omnibox_view_->SelectAll(true);
445 } 445 }
446 446
447 gfx::Point LocationBarView::GetLocationBarAnchorPoint() const { 447 gfx::Point LocationBarView::GetLocationBarAnchorPoint() const {
448 const views::ImageView* image = location_icon_view_->GetImageView();
448 // The +1 in the next line creates a 1-px gap between icon and arrow tip. 449 // The +1 in the next line creates a 1-px gap between icon and arrow tip.
449 const int icon_padding = GetLayoutConstant(ICON_LABEL_VIEW_TRAILING_PADDING); 450 int icon_bottom = image->GetImageBounds().bottom() -
450 gfx::Point icon_bottom( 451 GetLayoutConstant(ICON_LABEL_VIEW_TRAILING_PADDING) + 1;
451 0, location_icon_view_->GetImageBounds().bottom() - icon_padding + 1); 452 gfx::Point icon_center(image->GetImageBounds().CenterPoint());
452 gfx::Point icon_center(location_icon_view_->GetImageBounds().CenterPoint()); 453 gfx::Point point(icon_center.x(), icon_bottom);
453 gfx::Point point(icon_center.x(), icon_bottom.y()); 454 ConvertPointToTarget(image, this, &point);
454 ConvertPointToTarget(location_icon_view_, this, &point);
455 return point; 455 return point;
456 } 456 }
457 457
458 int LocationBarView::GetInternalHeight(bool use_preferred_size) { 458 int LocationBarView::GetInternalHeight(bool use_preferred_size) {
459 int total_height = 459 int total_height =
460 use_preferred_size ? GetPreferredSize().height() : height(); 460 use_preferred_size ? GetPreferredSize().height() : height();
461 return std::max(total_height - (VerticalPadding() * 2), 0); 461 return std::max(total_height - (VerticalPadding() * 2), 0);
462 } 462 }
463 463
464 void LocationBarView::GetOmniboxPopupPositioningInfo( 464 void LocationBarView::GetOmniboxPopupPositioningInfo(
(...skipping 881 matching lines...) Expand 10 before | Expand all | Expand 10 after
1346 1346
1347 void LocationBarView::AnimationEnded(const gfx::Animation* animation) { 1347 void LocationBarView::AnimationEnded(const gfx::Animation* animation) {
1348 AnimationProgressed(animation); 1348 AnimationProgressed(animation);
1349 } 1349 }
1350 1350
1351 //////////////////////////////////////////////////////////////////////////////// 1351 ////////////////////////////////////////////////////////////////////////////////
1352 // LocationBarView, private OmniboxEditController implementation: 1352 // LocationBarView, private OmniboxEditController implementation:
1353 1353
1354 void LocationBarView::OnChanged() { 1354 void LocationBarView::OnChanged() {
1355 RefreshLocationIcon(); 1355 RefreshLocationIcon();
1356 location_icon_view_->ShowTooltip(!GetOmniboxView()->IsEditingOrEmpty()); 1356 location_icon_view_->set_show_tooltip(!GetOmniboxView()->IsEditingOrEmpty());
1357 Layout(); 1357 Layout();
1358 SchedulePaint(); 1358 SchedulePaint();
1359 } 1359 }
1360 1360
1361 void LocationBarView::OnSetFocus() { 1361 void LocationBarView::OnSetFocus() {
1362 GetFocusManager()->SetFocusedView(this); 1362 GetFocusManager()->SetFocusedView(this);
1363 } 1363 }
1364 1364
1365 const ToolbarModel* LocationBarView::GetToolbarModel() const { 1365 const ToolbarModel* LocationBarView::GetToolbarModel() const {
1366 return delegate_->GetToolbarModel(); 1366 return delegate_->GetToolbarModel();
(...skipping 10 matching lines...) Expand all
1377 // LocationBarView, private TemplateURLServiceObserver implementation: 1377 // LocationBarView, private TemplateURLServiceObserver implementation:
1378 1378
1379 void LocationBarView::OnTemplateURLServiceChanged() { 1379 void LocationBarView::OnTemplateURLServiceChanged() {
1380 template_url_service_->RemoveObserver(this); 1380 template_url_service_->RemoveObserver(this);
1381 template_url_service_ = nullptr; 1381 template_url_service_ = nullptr;
1382 // If the browser is no longer active, let's not show the info bubble, as this 1382 // If the browser is no longer active, let's not show the info bubble, as this
1383 // would make the browser the active window again. 1383 // would make the browser the active window again.
1384 if (omnibox_view_ && omnibox_view_->GetWidget()->IsActive()) 1384 if (omnibox_view_ && omnibox_view_->GetWidget()->IsActive())
1385 ShowFirstRunBubble(); 1385 ShowFirstRunBubble();
1386 } 1386 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698