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 0859637fc3d94caee95431163c0bd4b7b7029ac2..0863bcf3af094f6ae725d14f16d3a2ca4aaae51a 100644 |
--- a/chrome/browser/ui/libgtk2ui/gtk2_border.cc |
+++ b/chrome/browser/ui/libgtk2ui/gtk2_border.cc |
@@ -17,7 +17,6 @@ |
#include "ui/gfx/rect.h" |
#include "ui/gfx/skia_util.h" |
#include "ui/views/controls/button/label_button.h" |
-#include "ui/views/controls/button/label_button_border.h" |
#include "ui/views/native_theme_delegate.h" |
using views::Button; |
@@ -64,7 +63,7 @@ |
Gtk2Border::Gtk2Border(Gtk2UI* gtk2_ui, |
views::LabelButton* owning_button, |
- scoped_ptr<views::LabelButtonBorder> border) |
+ scoped_ptr<views::Border> border) |
: gtk2_ui_(gtk2_ui), |
owning_button_(owning_button), |
border_(border.Pass()), |
@@ -133,8 +132,7 @@ |
bool focused = extra.button.is_focused; |
Button::ButtonState views_state = Button::GetButtonStateFrom(state); |
- if (border_->GetPainter(focused, views_state) || |
- (focused && border_->GetPainter(false, views_state))) { |
+ if (ShouldDrawBorder(focused, views_state)) { |
gfx::ImageSkia* image = &button_images_[focused][views_state]; |
if (image->isNull() || image->size() != rect.size()) { |
@@ -147,4 +145,17 @@ |
} |
} |
+bool Gtk2Border::ShouldDrawBorder(bool focused, |
+ views::Button::ButtonState state) { |
+ // This logic should be kept in sync with the LabelButtonBorder constructor. |
+ if (owning_button_->style() == Button::STYLE_BUTTON) { |
+ return true; |
+ } else if (owning_button_->style() == Button::STYLE_TEXTBUTTON) { |
+ return focused == false && (state == Button::STATE_HOVERED || |
+ state == Button::STATE_PRESSED); |
+ } |
+ |
+ return false; |
+} |
+ |
} // namespace libgtk2ui |