Index: chrome/browser/ui/gtk/gtk_theme_service.cc |
diff --git a/chrome/browser/ui/gtk/gtk_theme_service.cc b/chrome/browser/ui/gtk/gtk_theme_service.cc |
index 2ffcee5c1028f4e731176d1385994916e9a06524..086693d81a5f7bcf1d2238a8af76cdae9cec7ea4 100644 |
--- a/chrome/browser/ui/gtk/gtk_theme_service.cc |
+++ b/chrome/browser/ui/gtk/gtk_theme_service.cc |
@@ -11,6 +11,7 @@ |
#include "base/debug/trace_event.h" |
#include "base/environment.h" |
+#include "base/nix/mime_util_xdg.h" |
#include "base/nix/xdg_util.h" |
#include "base/prefs/pref_service.h" |
#include "base/stl_util.h" |
@@ -628,6 +629,7 @@ void GtkThemeService::LoadThemePrefs() { |
ThemeService::LoadThemePrefs(); |
} |
+ SetXDGIconTheme(); |
RebuildMenuIconSets(); |
} |
@@ -676,12 +678,22 @@ void GtkThemeService::OnStyleSet(GtkWidget* widget, |
if (profile()->GetPrefs()->GetBoolean(prefs::kUsesSystemTheme)) { |
ClearAllThemeData(); |
LoadGtkValues(); |
+ SetXDGIconTheme(); |
NotifyThemeChanged(); |
} |
RebuildMenuIconSets(); |
} |
+void GtkThemeService::SetXDGIconTheme() { |
+ gchar* gtk_theme_name; |
+ g_object_get(gtk_settings_get_default(), |
+ "gtk-icon-theme-name", |
+ >k_theme_name, NULL); |
+ base::nix::SetIconThemeName(gtk_theme_name); |
+ g_free(gtk_theme_name); |
+} |
+ |
void GtkThemeService::LoadGtkValues() { |
// Before we start setting images and values, we have to clear out old, stale |
// values. (If we don't do this, we'll regress startup time in the case where |