Chromium Code Reviews| Index: chrome/browser/ui/views/toolbar_view.cc |
| diff --git a/chrome/browser/ui/views/toolbar_view.cc b/chrome/browser/ui/views/toolbar_view.cc |
| index 3df545aa5da95e3732462070ec3b71b0b2b1997c..16d6dd1fa6862a39524ae41ca013225519b316f0 100644 |
| --- a/chrome/browser/ui/views/toolbar_view.cc |
| +++ b/chrome/browser/ui/views/toolbar_view.cc |
| @@ -423,7 +423,22 @@ void ToolbarView::LayoutForSearch() { |
| location_bar_container_->SetInToolbar(false); |
| location_container_bounds.set_height( |
| location_bar_container_->GetPreferredSize().height()); |
| - location_bar_container_->SetBoundsRect(location_container_bounds); |
| + |
| + // If bounds of |location_bar_container_| is not contained within its |
| + // parent's, adjust the former's to within the latter's. This will clip its |
| + // child |location_bar_view_| within its bounds without resizing it. |
| + // Note that parent of |location_bar_container_| i.e. BrowserView can't clip |
| + // its children, else it loses the 3D shadows. |
| + gfx::Rect parent_rect = location_bar_container_->parent()->GetLocalBounds(); |
| + gfx::Rect intersect_rect = parent_rect.Intersect(location_container_bounds); |
| + // If the two bounds don't intersect, set bounds of |location_bar_container_| |
| + // to 0. |
| + if (intersect_rect.IsEmpty()) { |
|
dhollowa
2012/09/13 18:24:08
if (interset_rect.IsEmpty())
intersect_rect = gf
kuan
2012/09/13 19:10:29
Done. i shortened it even more in SetBoundsRect.
|
| + intersect_rect.set_x(0); |
| + intersect_rect.set_y(0); |
| + intersect_rect.set_size(gfx::Size()); |
| + } |
| + location_bar_container_->SetBoundsRect(intersect_rect); |
| #endif |
| } |
| @@ -978,7 +993,7 @@ void ToolbarView::SetLocationBarContainerBounds( |
| // LocationBarContainer is not a child of the ToolbarView. |
| gfx::Point origin(bounds.origin()); |
| views::View::ConvertPointToTarget(this, location_bar_container_->parent(), |
| - &origin); |
| + &origin); |
| gfx::Rect target_bounds(origin, bounds.size()); |
| if (location_bar_container_->GetTargetBounds() != target_bounds) { |
| location_bar_container_->SetInToolbar(true); |