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() { |