Chromium Code Reviews| Index: chrome/browser/ui/gtk/theme_service_gtk.cc |
| diff --git a/chrome/browser/ui/gtk/theme_service_gtk.cc b/chrome/browser/ui/gtk/theme_service_gtk.cc |
| index 7c50f6e888fc95ca30898d03d4b87433edf5ff1a..fbc486971709d0fd55aba8375f6ec59f0ec84dce 100644 |
| --- a/chrome/browser/ui/gtk/theme_service_gtk.cc |
| +++ b/chrome/browser/ui/gtk/theme_service_gtk.cc |
| @@ -778,6 +778,9 @@ void ThemeServiceGtk::LoadGtkValues() { |
| SetThemeColorFromGtk(ThemeService::COLOR_NTP_SECTION_LINK_UNDERLINE, |
| link_color); |
| + if (link_color && link_color != &kDefaultLinkColor) |
|
Elliot Glaysher
2012/03/27 21:43:00
Better to set a bool if &kDefaultLinkColor set abo
|
| + gdk_color_free(const_cast<GdkColor*>(link_color)); |
| + |
| // Generate the colors that we pass to WebKit. |
| focus_ring_color_ = gfx::GdkColorToSkColor(frame_color); |
| GdkColor thumb_active_color, thumb_inactive_color, track_color; |
| @@ -801,10 +804,10 @@ void ThemeServiceGtk::LoadGtkValues() { |
| } |
| GdkColor ThemeServiceGtk::BuildFrameColors(GtkStyle* frame_style) { |
| - const GdkColor* theme_frame = NULL; |
| - const GdkColor* theme_inactive_frame = NULL; |
| - const GdkColor* theme_incognito_frame = NULL; |
| - const GdkColor* theme_incognito_inactive_frame = NULL; |
| + GdkColor* theme_frame = NULL; |
| + GdkColor* theme_inactive_frame = NULL; |
| + GdkColor* theme_incognito_frame = NULL; |
| + GdkColor* theme_incognito_inactive_frame = NULL; |
| gtk_widget_style_get(GTK_WIDGET(fake_frame_), |
| "frame-color", &theme_frame, |
| "inactive-frame-color", &theme_inactive_frame, |
| @@ -819,6 +822,8 @@ GdkColor ThemeServiceGtk::BuildFrameColors(GtkStyle* frame_style) { |
| kDefaultFrameShift, |
| ThemeService::COLOR_FRAME, |
| ThemeService::TINT_FRAME); |
| + if (theme_frame) |
| + gdk_color_free(theme_frame); |
| SetThemeTintFromGtk(ThemeService::TINT_BACKGROUND_TAB, &frame_color); |
| BuildAndSetFrameColor( |
| @@ -827,6 +832,8 @@ GdkColor ThemeServiceGtk::BuildFrameColors(GtkStyle* frame_style) { |
| kDefaultFrameShift, |
| ThemeService::COLOR_FRAME_INACTIVE, |
| ThemeService::TINT_FRAME_INACTIVE); |
| + if (theme_inactive_frame) |
| + gdk_color_free(theme_inactive_frame); |
| BuildAndSetFrameColor( |
| &frame_color, |
| @@ -834,6 +841,8 @@ GdkColor ThemeServiceGtk::BuildFrameColors(GtkStyle* frame_style) { |
| GetDefaultTint(ThemeService::TINT_FRAME_INCOGNITO), |
| ThemeService::COLOR_FRAME_INCOGNITO, |
| ThemeService::TINT_FRAME_INCOGNITO); |
| + if (theme_incognito_frame) |
| + gdk_color_free(theme_incognito_frame); |
| BuildAndSetFrameColor( |
| &frame_color, |
| @@ -841,6 +850,8 @@ GdkColor ThemeServiceGtk::BuildFrameColors(GtkStyle* frame_style) { |
| GetDefaultTint(ThemeService::TINT_FRAME_INCOGNITO_INACTIVE), |
| ThemeService::COLOR_FRAME_INCOGNITO_INACTIVE, |
| ThemeService::TINT_FRAME_INCOGNITO_INACTIVE); |
| + if (theme_incognito_inactive_frame) |
| + gdk_color_free(theme_incognito_inactive_frame); |
| return frame_color; |
| } |
| @@ -993,7 +1004,7 @@ SkBitmap* ThemeServiceGtk::GenerateFrameImage( |
| gfx::Canvas canvas(gfx::Size(kToolbarImageWidth, kToolbarImageHeight), true); |
| int gradient_size; |
| - const GdkColor* gradient_top_color = NULL; |
| + GdkColor* gradient_top_color = NULL; |
| gtk_widget_style_get(GTK_WIDGET(fake_frame_), |
| "frame-gradient-size", &gradient_size, |
| gradient_name, &gradient_top_color, |
| @@ -1002,6 +1013,8 @@ SkBitmap* ThemeServiceGtk::GenerateFrameImage( |
| SkColor lighter = gradient_top_color ? |
| gfx::GdkColorToSkColor(*gradient_top_color) : |
| color_utils::HSLShift(base, kGtkFrameShift); |
| + if (gradient_top_color) |
| + gdk_color_free(gradient_top_color); |
| SkShader* shader = gfx::CreateGradientShader( |
| 0, gradient_size, lighter, base); |
| SkPaint paint; |