| 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 4e8bfd158725cfa72af04558986e089263531cbd..8cffcd3feda7dc367cc10bd384380de92cc3c150 100644
|
| --- a/chrome/browser/ui/libgtk2ui/gtk2_border.cc
|
| +++ b/chrome/browser/ui/libgtk2ui/gtk2_border.cc
|
| @@ -8,6 +8,7 @@
|
|
|
| #include "chrome/browser/ui/libgtk2ui/gtk2_ui.h"
|
| #include "third_party/skia/include/effects/SkLerpXfermode.h"
|
| +#include "ui/base/theme_provider.h"
|
| #include "ui/gfx/animation/animation.h"
|
| #include "ui/gfx/canvas.h"
|
| #include "ui/gfx/image/image_skia_source.h"
|
| @@ -73,7 +74,6 @@ Gtk2Border::Gtk2Border(Gtk2UI* gtk2_ui,
|
| views::LabelButton* owning_button,
|
| scoped_ptr<views::Border> border)
|
| : gtk2_ui_(gtk2_ui),
|
| - use_gtk_(gtk2_ui_->GetUseSystemTheme()),
|
| owning_button_(owning_button),
|
| border_(border.Pass()) {
|
| gtk2_ui_->AddGtkBorder(this);
|
| @@ -83,7 +83,7 @@ Gtk2Border::~Gtk2Border() {
|
| gtk2_ui_->RemoveGtkBorder(this);
|
| }
|
|
|
| -void Gtk2Border::InvalidateAndSetUsesGtk(bool use_gtk) {
|
| +void Gtk2Border::InvalidateGtkImages() {
|
| for (int i = 0; i < kNumberOfFocusedStates; ++i) {
|
| for (int j = 0; j < views::Button::STATE_COUNT; ++j) {
|
| button_images_[i][j] = gfx::ImageSkia();
|
| @@ -93,12 +93,11 @@ void Gtk2Border::InvalidateAndSetUsesGtk(bool use_gtk) {
|
| // Our owning view must have its layout invalidated because the insets could
|
| // have changed.
|
| owning_button_->InvalidateLayout();
|
| -
|
| - use_gtk_ = use_gtk;
|
| }
|
|
|
| void Gtk2Border::Paint(const views::View& view, gfx::Canvas* canvas) {
|
| - if (!use_gtk_) {
|
| + ui::ThemeProvider* provider = owning_button_->GetThemeProvider();
|
| + if (!provider || !provider->UsingNativeTheme()) {
|
| border_->Paint(view, canvas);
|
| return;
|
| }
|
| @@ -133,14 +132,16 @@ void Gtk2Border::Paint(const views::View& view, gfx::Canvas* canvas) {
|
| }
|
|
|
| gfx::Insets Gtk2Border::GetInsets() const {
|
| - if (!use_gtk_)
|
| + ui::ThemeProvider* provider = owning_button_->GetThemeProvider();
|
| + if (!provider || !provider->UsingNativeTheme())
|
| return border_->GetInsets();
|
|
|
| return gtk2_ui_->GetButtonInsets();
|
| }
|
|
|
| gfx::Size Gtk2Border::GetMinimumSize() const {
|
| - if (!use_gtk_)
|
| + ui::ThemeProvider* provider = owning_button_->GetThemeProvider();
|
| + if (!provider || !provider->UsingNativeTheme())
|
| return border_->GetMinimumSize();
|
|
|
| gfx::Insets insets = GetInsets();
|
|
|