Chromium Code Reviews| Index: chrome/browser/gtk/gtk_theme_provider.cc |
| diff --git a/chrome/browser/gtk/gtk_theme_provider.cc b/chrome/browser/gtk/gtk_theme_provider.cc |
| index f18ff3f89fb26708bf9f19873b3b4111ff34a178..5f102e2f65a1b7dcce1c43ee3a98aba4a5892f9f 100644 |
| --- a/chrome/browser/gtk/gtk_theme_provider.cc |
| +++ b/chrome/browser/gtk/gtk_theme_provider.cc |
| @@ -37,7 +37,8 @@ GtkThemeProvider* GtkThemeProvider::GetFrom(Profile* profile) { |
| GtkThemeProvider::GtkThemeProvider() |
| : BrowserThemeProvider(), |
| - fake_window_(gtk_window_new(GTK_WINDOW_TOPLEVEL)) { |
| + fake_window_(gtk_window_new(GTK_WINDOW_TOPLEVEL)), |
| + fake_label_(gtk_label_new("")) { |
| // Only realized widgets receive style-set notifications, which we need to |
| // broadcast new theme images and colors. |
| gtk_widget_realize(fake_window_); |
| @@ -47,6 +48,7 @@ GtkThemeProvider::GtkThemeProvider() |
| GtkThemeProvider::~GtkThemeProvider() { |
| profile()->GetPrefs()->RemovePrefObserver(prefs::kUsesSystemTheme, this); |
| gtk_widget_destroy(fake_window_); |
| + gtk_widget_destroy(fake_label_); |
| // Disconnect from the destroy signal of any redisual widgets in |
| // |chrome_buttons_|. |
| @@ -165,44 +167,46 @@ void GtkThemeProvider::OnStyleSet(GtkWidget* widget, |
| } |
| void GtkThemeProvider::LoadGtkValues() { |
| - GtkStyle* style = gtk_rc_get_style(fake_window_); |
| + GtkStyle* window_style = gtk_rc_get_style(fake_window_); |
| + GtkStyle* label_style = gtk_rc_get_style(fake_label_); |
| - SetThemeColorFromGtk(kColorFrame, &style->bg[GTK_STATE_SELECTED]); |
| + SetThemeColorFromGtk(kColorFrame, &window_style->bg[GTK_STATE_SELECTED]); |
| // Skip COLOR_FRAME_INACTIVE and the incognito colors, as they will be |
| // autogenerated from tints. |
| SetThemeColorFromGtk(kColorToolbar, |
| - &style->bg[GTK_STATE_NORMAL]); |
| + &window_style->bg[GTK_STATE_NORMAL]); |
| SetThemeColorFromGtk(kColorTabText, |
| - &style->text[GTK_STATE_NORMAL]); |
| + &label_style->text[GTK_STATE_NORMAL]); |
| SetThemeColorFromGtk(kColorBackgroundTabText, |
|
Evan Stade
2009/07/21 19:12:19
shouldn't TabText and BackgroundTabText be differe
Elliot Glaysher
2009/07/21 19:21:36
They should, but that's a larger change then this.
|
| - &style->text[GTK_STATE_NORMAL]); |
| + &label_style->text[GTK_STATE_NORMAL]); |
| SetThemeColorFromGtk(kColorBookmarkText, |
| - &style->text[GTK_STATE_NORMAL]); |
| + &label_style->text[GTK_STATE_NORMAL]); |
| SetThemeColorFromGtk(kColorControlBackground, |
| - &style->bg[GTK_STATE_NORMAL]); |
| + &window_style->bg[GTK_STATE_NORMAL]); |
| SetThemeColorFromGtk(kColorButtonBackground, |
| - &style->bg[GTK_STATE_NORMAL]); |
| + &window_style->bg[GTK_STATE_NORMAL]); |
| - SetThemeTintFromGtk(kTintButtons, &style->bg[GTK_STATE_SELECTED], |
| + SetThemeTintFromGtk(kTintButtons, &window_style->bg[GTK_STATE_SELECTED], |
| kDefaultTintButtons); |
| - SetThemeTintFromGtk(kTintFrame, &style->bg[GTK_STATE_SELECTED], |
| + SetThemeTintFromGtk(kTintFrame, &window_style->bg[GTK_STATE_SELECTED], |
| kDefaultTintFrame); |
| SetThemeTintFromGtk(kTintFrameIncognito, |
| - &style->bg[GTK_STATE_SELECTED], |
| + &window_style->bg[GTK_STATE_SELECTED], |
| kDefaultTintFrameIncognito); |
| SetThemeTintFromGtk(kTintBackgroundTab, |
| - &style->bg[GTK_STATE_SELECTED], |
| + &window_style->bg[GTK_STATE_SELECTED], |
| kDefaultTintBackgroundTab); |
| // The inactive color/tint is special: We *must* use the exact insensitive |
| // color for all inactive windows, otherwise we end up neon pink half the |
| // time. |
| - SetThemeColorFromGtk(kColorFrameInactive, &style->bg[GTK_STATE_INSENSITIVE]); |
| + SetThemeColorFromGtk(kColorFrameInactive, |
| + &window_style->bg[GTK_STATE_INSENSITIVE]); |
| SetThemeTintFromGtk(kTintFrameInactive, |
| - &style->bg[GTK_STATE_INSENSITIVE], |
| + &window_style->bg[GTK_STATE_INSENSITIVE], |
| kExactColor); |
| SetThemeTintFromGtk(kTintFrameIncognitoInactive, |
| - &style->bg[GTK_STATE_INSENSITIVE], |
| + &window_style->bg[GTK_STATE_INSENSITIVE], |
| kExactColor); |
| GenerateFrameColors(); |