Index: chrome/browser/ui/views/toolbar/wrench_toolbar_button.cc |
diff --git a/chrome/browser/ui/views/toolbar/wrench_toolbar_button.cc b/chrome/browser/ui/views/toolbar/wrench_toolbar_button.cc |
index 1aeca46e55880e38d6731f9fdf889c2996c21430..056015f6a5c7b458192b6ec287be3b0971e4d2f6 100644 |
--- a/chrome/browser/ui/views/toolbar/wrench_toolbar_button.cc |
+++ b/chrome/browser/ui/views/toolbar/wrench_toolbar_button.cc |
@@ -8,11 +8,13 @@ |
#include "base/single_thread_task_runner.h" |
#include "base/thread_task_runner_handle.h" |
#include "base/time/time.h" |
+#include "chrome/browser/themes/theme_properties.h" |
#include "chrome/browser/ui/browser.h" |
#include "chrome/browser/ui/views/extensions/browser_action_drag_data.h" |
#include "chrome/browser/ui/views/toolbar/toolbar_view.h" |
#include "extensions/common/feature_switch.h" |
#include "grit/theme_resources.h" |
+#include "ui/base/resource/material_design/material_design_controller.h" |
#include "ui/base/resource/resource_bundle.h" |
#include "ui/base/theme_provider.h" |
#include "ui/views/controls/button/label_button_border.h" |
@@ -24,11 +26,14 @@ bool WrenchToolbarButton::g_open_wrench_immediately_for_testing = false; |
WrenchToolbarButton::WrenchToolbarButton(ToolbarView* toolbar_view) |
: views::MenuButton(NULL, base::string16(), toolbar_view, false), |
- wrench_icon_painter_(new WrenchIconPainter(this)), |
+ wrench_icon_painter_(nullptr), |
toolbar_view_(toolbar_view), |
allow_extension_dragging_( |
- extensions::FeatureSwitch::extension_action_redesign()->IsEnabled()), |
+ extensions::FeatureSwitch::extension_action_redesign() |
+ ->IsEnabled()), |
weak_factory_(this) { |
+ if (!ui::MaterialDesignController::IsModeMaterial()) |
+ wrench_icon_painter_.reset(new WrenchIconPainter(this)); |
} |
WrenchToolbarButton::~WrenchToolbarButton() { |
@@ -36,11 +41,25 @@ WrenchToolbarButton::~WrenchToolbarButton() { |
void WrenchToolbarButton::SetSeverity(WrenchIconPainter::Severity severity, |
bool animate) { |
+ if (ui::MaterialDesignController::IsModeMaterial()) |
+ return; |
+ |
wrench_icon_painter_->SetSeverity(severity, animate); |
SchedulePaint(); |
} |
gfx::Size WrenchToolbarButton::GetPreferredSize() const { |
+ if (ui::MaterialDesignController::IsModeMaterial()) { |
+ gfx::Size size(image()->GetPreferredSize()); |
+ ui::ThemeProvider* provider = GetThemeProvider(); |
+ if (provider && provider->UsingSystemTheme()) { |
+ int inset = provider->GetDisplayProperty( |
+ ThemeProperties::PROPERTY_TOOLBAR_BUTTON_BORDER_INSET); |
+ size.Enlarge(2 * inset, 2 * inset); |
+ } |
+ return size; |
+ } |
+ |
return ResourceBundle::GetSharedInstance(). |
GetImageSkiaNamed(IDR_TOOLBAR_BEZEL_HOVER)->size(); |
} |
@@ -101,6 +120,8 @@ int WrenchToolbarButton::OnPerformDrop(const ui::DropTargetEvent& event) { |
void WrenchToolbarButton::OnPaint(gfx::Canvas* canvas) { |
views::MenuButton::OnPaint(canvas); |
+ if (ui::MaterialDesignController::IsModeMaterial()) |
+ return; |
wrench_icon_painter_->Paint(canvas, |
GetThemeProvider(), |
gfx::Rect(size()), |