Chromium Code Reviews| Index: chrome/browser/ui/gtk/location_bar_view_gtk.cc |
| diff --git a/chrome/browser/ui/gtk/location_bar_view_gtk.cc b/chrome/browser/ui/gtk/location_bar_view_gtk.cc |
| index 3859e58e77db904c69a158ac2105a184a542a282..34d0039439cbc5508d6a7e1320dfc5c989f6a5b4 100644 |
| --- a/chrome/browser/ui/gtk/location_bar_view_gtk.cc |
| +++ b/chrome/browser/ui/gtk/location_bar_view_gtk.cc |
| @@ -1230,9 +1230,7 @@ void LocationBarViewGtk::OnEntryBoxSizeAllocate(GtkWidget* sender, |
| gboolean LocationBarViewGtk::OnZoomButtonPress(GtkWidget* widget, |
| GdkEventButton* event) { |
| if (event->button == 1 && GetWebContents()) { |
| - // If the zoom icon is clicked, show the zoom bubble and keep it open until |
| - // it loses focus. |
| - ZoomBubbleGtk::Show(zoom_.get(), GetTabContents(), false); |
| + UpdateZoomIcon(); |
|
Kyle Horimoto
2012/07/24 03:22:28
OnZoomButtonPress() should display the zoom bubble
Dan Beam
2012/08/15 09:04:59
This works again.
|
| return TRUE; |
| } |
| return FALSE; |
| @@ -1257,13 +1255,6 @@ gboolean LocationBarViewGtk::OnChromeToMobileButtonPress( |
| return FALSE; |
| } |
| -void LocationBarViewGtk::ShowZoomBubble(int zoom_percent) { |
| - if (!zoom_.get() || toolbar_model_->input_in_progress()) |
| - return; |
| - |
| - ZoomBubbleGtk::Show(zoom_.get(), GetTabContents(), true); |
| -} |
| - |
| void LocationBarViewGtk::ShowStarBubble(const GURL& url, |
| bool newly_bookmarked) { |
| if (!star_.get()) |
| @@ -1277,15 +1268,6 @@ void LocationBarViewGtk::ShowChromeToMobileBubble() { |
| ChromeToMobileBubbleGtk::Show(GTK_IMAGE(chrome_to_mobile_image_), browser_); |
| } |
| -void LocationBarViewGtk::SetZoomIconTooltipPercent(int zoom_percent) { |
| - UpdateZoomIcon(); |
| -} |
| - |
| -void LocationBarViewGtk::SetZoomIconState( |
| - ZoomController::ZoomIconState zoom_icon_state) { |
| - UpdateZoomIcon(); |
| -} |
| - |
| void LocationBarViewGtk::SetStarred(bool starred) { |
| if (starred == starred_) |
| return; |
| @@ -1294,29 +1276,36 @@ void LocationBarViewGtk::SetStarred(bool starred) { |
| UpdateStarIcon(); |
| } |
| +// TODO(dbeam): make a generic helper that updates both the zoom icon and shows |
| +// the zoom bubble, if appropriate, for a zoom change. |
| +void LocationBarViewGtk::ZoomChangedForActiveTab(bool can_show_bubble) { |
| + UpdateZoomIcon(); |
| + |
| + // TODO(dbeam): show a zoom bubble when appropriate. |
| +} |
| + |
| void LocationBarViewGtk::UpdateZoomIcon() { |
| - if (!zoom_.get() || !GetWebContents()) |
| + TabContents* tab_contents = GetTabContents(); |
| + if (!zoom_.get() || !tab_contents) |
| return; |
| - const ZoomController* zc = TabContents::FromWebContents( |
| - GetWebContents())->zoom_controller(); |
| - |
| - if (toolbar_model_->input_in_progress() || |
| - zc->zoom_icon_state() == ZoomController::NONE) { |
| + ZoomController* zoom_controller = tab_contents->zoom_controller(); |
| + if (!zoom_controller || zoom_controller->IsAtDefaultZoom() || |
| + toolbar_model_->input_in_progress()) { |
| gtk_widget_hide(zoom_.get()); |
| - ZoomBubbleGtk::Close(); |
| return; |
| } |
| - gtk_widget_show(zoom_.get()); |
| - int zoom_resource = zc->zoom_icon_state() == ZoomController::ZOOM_PLUS_ICON ? |
| - IDR_ZOOM_PLUS : IDR_ZOOM_MINUS; |
| + int zoom_percent = zoom_controller->zoom_percent(); |
| + int zoom_resource = zoom_percent > 100 ? IDR_ZOOM_PLUS : IDR_ZOOM_MINUS; |
|
Kyle Horimoto
2012/07/24 03:22:28
This is incorrect: zoom_resource should be IDR_ZOO
Dan Beam
2012/08/15 09:04:59
Done.
|
| gtk_image_set_from_pixbuf(GTK_IMAGE(zoom_image_), |
| theme_service_->GetImageNamed(zoom_resource)->ToGdkPixbuf()); |
| - string16 tooltip = l10n_util::GetStringFUTF16Int(IDS_TOOLTIP_ZOOM, |
| - zc->zoom_percent()); |
| + string16 tooltip = |
| + l10n_util::GetStringFUTF16Int(IDS_TOOLTIP_ZOOM, zoom_percent); |
| gtk_widget_set_tooltip_text(zoom_.get(), UTF16ToUTF8(tooltip).c_str()); |
| + |
| + gtk_widget_show(zoom_.get()); |
| } |
| void LocationBarViewGtk::UpdateStarIcon() { |