Index: chrome/browser/ui/libgtk2ui/gtk2_border.cc |
diff --git a/chrome/browser/ui/libgtk2ui/gtk2_border.cc b/chrome/browser/ui/libgtk2ui/gtk2_border.cc |
index c98888addbda716270c10a392f30d73347e92126..31a239690e7c9f6c04fe7136c186d124c1f6f77a 100644 |
--- a/chrome/browser/ui/libgtk2ui/gtk2_border.cc |
+++ b/chrome/browser/ui/libgtk2ui/gtk2_border.cc |
@@ -7,6 +7,7 @@ |
#include <gtk/gtk.h> |
#include "chrome/browser/ui/libgtk2ui/gtk2_ui.h" |
+#include "chrome/browser/ui/libgtk2ui/native_theme_gtk2.h" |
#include "third_party/skia/include/effects/SkLerpXfermode.h" |
#include "ui/base/theme_provider.h" |
#include "ui/gfx/animation/animation.h" |
@@ -73,12 +74,12 @@ class ButtonImageSkiaSource : public gfx::ImageSkiaSource { |
Gtk2Border::Gtk2Border(Gtk2UI* gtk2_ui, |
views::LabelButton* owning_button) |
: gtk2_ui_(gtk2_ui), |
- owning_button_(owning_button) { |
- gtk2_ui_->AddNativeThemeChangeObserver(this); |
+ owning_button_(owning_button), |
+ observer_manager_(this) { |
+ observer_manager_.Add(NativeThemeGtk2::instance()); |
} |
Gtk2Border::~Gtk2Border() { |
- gtk2_ui_->RemoveNativeThemeChangeObserver(this); |
} |
void Gtk2Border::Paint(const views::View& view, gfx::Canvas* canvas) { |
@@ -122,7 +123,8 @@ gfx::Size Gtk2Border::GetMinimumSize() const { |
return gfx::Size(insets.width(), insets.height()); |
} |
-void Gtk2Border::OnNativeThemeChanged() { |
+void Gtk2Border::OnNativeThemeUpdated(ui::NativeTheme* observed_theme) { |
+ DCHECK_EQ(observed_theme, NativeThemeGtk2::instance()); |
for (int i = 0; i < kNumberOfFocusedStates; ++i) { |
for (int j = 0; j < views::Button::STATE_COUNT; ++j) { |
button_images_[i][j] = gfx::ImageSkia(); |