| Index: chrome/browser/gtk/browser_toolbar_gtk.cc
|
| diff --git a/chrome/browser/gtk/browser_toolbar_gtk.cc b/chrome/browser/gtk/browser_toolbar_gtk.cc
|
| index d7fddfd7d023243e3adff1bd19d7fac0164e0471..8340cef2b691e9107d488c5d8704a4eadee34133 100644
|
| --- a/chrome/browser/gtk/browser_toolbar_gtk.cc
|
| +++ b/chrome/browser/gtk/browser_toolbar_gtk.cc
|
| @@ -21,6 +21,7 @@
|
| #include "chrome/browser/gtk/go_button_gtk.h"
|
| #include "chrome/browser/gtk/gtk_chrome_button.h"
|
| #include "chrome/browser/gtk/gtk_dnd_util.h"
|
| +#include "chrome/browser/gtk/gtk_theme_provider.h"
|
| #include "chrome/browser/gtk/location_bar_view_gtk.h"
|
| #include "chrome/browser/gtk/nine_box.h"
|
| #include "chrome/browser/gtk/standard_menus.h"
|
| @@ -124,10 +125,12 @@ void BrowserToolbarGtk::Init(Profile* profile,
|
| gtk_box_pack_start(GTK_BOX(toolbar_), back_forward_hbox_, FALSE, FALSE, 0);
|
|
|
| reload_.reset(BuildToolbarButton(IDR_RELOAD, IDR_RELOAD_P, IDR_RELOAD_H, 0,
|
| - l10n_util::GetStringUTF8(IDS_TOOLTIP_RELOAD)));
|
| + l10n_util::GetStringUTF8(IDS_TOOLTIP_RELOAD),
|
| + GTK_STOCK_REFRESH));
|
|
|
| home_.reset(BuildToolbarButton(IDR_HOME, IDR_HOME_P, IDR_HOME_H, 0,
|
| - l10n_util::GetStringUTF8(IDS_TOOLTIP_HOME)));
|
| + l10n_util::GetStringUTF8(IDS_TOOLTIP_HOME),
|
| + GTK_STOCK_HOME));
|
| gtk_util::SetButtonTriggersNavigation(home_->widget());
|
| SetUpDragForHomeButton();
|
|
|
| @@ -162,6 +165,9 @@ void BrowserToolbarGtk::Init(Profile* profile,
|
|
|
| gtk_box_pack_start(GTK_BOX(toolbar_), menus_hbox_, FALSE, FALSE, 0);
|
|
|
| + // Force all the CustomDrawButtons to load the correct rendering style.
|
| + UserChangedTheme();
|
| +
|
| gtk_widget_show_all(toolbar_);
|
|
|
| if (show_home_button_.GetValue()) {
|
| @@ -274,6 +280,19 @@ void BrowserToolbarGtk::UpdateTabContents(TabContents* contents,
|
| location_bar_->Update(should_restore_state ? contents : NULL);
|
| }
|
|
|
| +void BrowserToolbarGtk::UserChangedTheme() {
|
| + bool use_gtk = GtkThemeProvider::UseSystemThemeGraphics(profile_);
|
| + back_->SetUseSystemTheme(use_gtk);
|
| + forward_->SetUseSystemTheme(use_gtk);
|
| + reload_->SetUseSystemTheme(use_gtk);
|
| + home_->SetUseSystemTheme(use_gtk);
|
| +
|
| + gtk_chrome_button_set_use_gtk_rendering(
|
| + GTK_CHROME_BUTTON(page_menu_button_.get()), use_gtk);
|
| + gtk_chrome_button_set_use_gtk_rendering(
|
| + GTK_CHROME_BUTTON(app_menu_button_.get()), use_gtk);
|
| +}
|
| +
|
| gfx::Rect BrowserToolbarGtk::GetPopupBounds() const {
|
| GtkWidget* star = star_->widget();
|
| GtkWidget* go = go_->widget();
|
| @@ -297,9 +316,9 @@ gfx::Rect BrowserToolbarGtk::GetPopupBounds() const {
|
|
|
| CustomDrawButton* BrowserToolbarGtk::BuildToolbarButton(
|
| int normal_id, int active_id, int highlight_id, int depressed_id,
|
| - const std::string& localized_tooltip) {
|
| + const std::string& localized_tooltip, const char* stock_id) {
|
| CustomDrawButton* button = new CustomDrawButton(normal_id, active_id,
|
| - highlight_id, depressed_id);
|
| + highlight_id, depressed_id, stock_id);
|
|
|
| gtk_widget_set_tooltip_text(button->widget(),
|
| localized_tooltip.c_str());
|
| @@ -332,7 +351,8 @@ GtkWidget* BrowserToolbarGtk::BuildToolbarMenuButton(
|
| owner->Own(button);
|
|
|
| ResourceBundle& rb = ResourceBundle::GetSharedInstance();
|
| - gtk_container_set_border_width(GTK_CONTAINER(button), 2);
|
| + if (!GtkThemeProvider::UseSystemThemeGraphics(profile_))
|
| + gtk_container_set_border_width(GTK_CONTAINER(button), 2);
|
| gtk_container_add(GTK_CONTAINER(button),
|
| gtk_image_new_from_pixbuf(rb.GetPixbufNamed(icon_id)));
|
|
|
|
|