| 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 64add46573b894ed38c9ae487bd48c68251376a8..a5a8128b675e6223db4294ca31bd3d7e9e300876 100644
|
| --- a/chrome/browser/ui/gtk/location_bar_view_gtk.cc
|
| +++ b/chrome/browser/ui/gtk/location_bar_view_gtk.cc
|
| @@ -572,10 +572,8 @@ void LocationBarViewGtk::Init(bool popup_window_mode) {
|
| }
|
| }
|
|
|
| - // TODO(khorimoto): Uncomment the following 2 lines when zoom icon/bubble
|
| - // implementation is complete for M23.
|
| - // CreateZoomButton();
|
| - // gtk_box_pack_end(GTK_BOX(hbox_.get()), zoom_.get(), FALSE, FALSE, 0);
|
| + CreateZoomButton();
|
| + gtk_box_pack_end(GTK_BOX(hbox_.get()), zoom_.get(), FALSE, FALSE, 0);
|
|
|
| content_setting_hbox_.Own(gtk_hbox_new(FALSE, kInnerPadding + 1));
|
| gtk_widget_set_name(content_setting_hbox_.get(),
|
| @@ -1502,7 +1500,7 @@ gboolean LocationBarViewGtk::OnChromeToMobileButtonPress(
|
| return FALSE;
|
| }
|
|
|
| -void LocationBarViewGtk::ShowZoomBubble(int zoom_percent) {
|
| +void LocationBarViewGtk::ShowZoomBubble() {
|
| if (!zoom_.get() || toolbar_model_->input_in_progress())
|
| return;
|
|
|
| @@ -1522,15 +1520,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;
|
| @@ -1539,29 +1528,36 @@ void LocationBarViewGtk::SetStarred(bool starred) {
|
| UpdateStarIcon();
|
| }
|
|
|
| +void LocationBarViewGtk::ZoomChangedForActiveTab(bool can_show_bubble) {
|
| + UpdateZoomIcon();
|
| +
|
| + // TODO(dbeam): don't show bubble if the wrench menu is showing.
|
| + if (can_show_bubble && gtk_widget_get_visible(zoom_.get()))
|
| + ShowZoomBubble();
|
| +}
|
| +
|
| 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;
|
| + const int zoom_resource = zoom_controller->GetResourceForZoomLevel();
|
| 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_controller->zoom_percent());
|
| gtk_widget_set_tooltip_text(zoom_.get(), UTF16ToUTF8(tooltip).c_str());
|
| +
|
| + gtk_widget_show(zoom_.get());
|
| }
|
|
|
| void LocationBarViewGtk::UpdateStarIcon() {
|
|
|