| Index: ui/views/controls/button/label_button.cc | 
| diff --git a/ui/views/controls/button/label_button.cc b/ui/views/controls/button/label_button.cc | 
| index 4fd7751fc47e7ec22b85a913c6ed6b16ad4ffcb9..95ec21411507d68c43697e238727b88ba6ed3034 100644 | 
| --- a/ui/views/controls/button/label_button.cc | 
| +++ b/ui/views/controls/button/label_button.cc | 
| @@ -17,6 +17,10 @@ | 
| #include "ui/views/painter.h" | 
| #include "ui/views/window/dialog_delegate.h" | 
|  | 
| +#if defined(OS_LINUX) && !defined(OS_CHROMEOS) | 
| +#include "ui/views/linux_ui/linux_ui.h" | 
| +#endif | 
| + | 
| namespace { | 
|  | 
| // The spacing between the icon and text. | 
| @@ -155,8 +159,9 @@ void LabelButton::SetStyle(ButtonStyle style) { | 
|  | 
| ResetColorsFromNativeTheme(); | 
|  | 
| -  // Set the border and invalidate the layout to pickup its new insets. | 
| -  set_border(new LabelButtonBorder(style)); | 
| +  UpdateThemedBorder(new LabelButtonBorder(style_)); | 
| + | 
| +  // Invalidate the layout to pickup the new insets from the border. | 
| InvalidateLayout(); | 
| } | 
|  | 
| @@ -334,6 +339,18 @@ void LabelButton::UpdateImage() { | 
| image_->SetImage(GetImage(state())); | 
| } | 
|  | 
| +void LabelButton::UpdateThemedBorder(LabelButtonBorder* label_button_border) { | 
| +#if defined(OS_LINUX) && !defined(OS_CHROMEOS) | 
| +  views::LinuxUI* linux_ui = views::LinuxUI::instance(); | 
| +  if (linux_ui) { | 
| +    set_border(linux_ui->CreateNativeBorder(this, label_button_border)); | 
| +  } else | 
| +#endif | 
| +  { | 
| +    set_border(label_button_border); | 
| +  } | 
| +} | 
| + | 
| void LabelButton::StateChanged() { | 
| const gfx::Size previous_image_size(image_->GetPreferredSize()); | 
| UpdateImage(); | 
|  |