Index: ui/views/bubble/bubble_border.cc |
diff --git a/ui/views/bubble/bubble_border.cc b/ui/views/bubble/bubble_border.cc |
index cbe770213efde8ab228a1ffb7f18c7dbb99f9542..82242819baaa4246a157a82d7e283946411be716 100644 |
--- a/ui/views/bubble/bubble_border.cc |
+++ b/ui/views/bubble/bubble_border.cc |
@@ -136,7 +136,7 @@ struct BubbleBorder::BorderImages* |
BubbleBorder::BubbleBorder(ArrowLocation arrow, Shadow shadow, SkColor color) |
: override_arrow_offset_(0), |
arrow_location_(arrow), |
- paint_arrow_(true), |
+ arrow_paint_type_(PAINT_NORMAL), |
alignment_(ALIGN_ARROW_TO_MID_ANCHOR), |
background_color_(color) { |
DCHECK(shadow < SHADOW_COUNT); |
@@ -182,7 +182,7 @@ gfx::Rect BubbleBorder::GetBounds(const gfx::Rect& position_relative_to, |
int w = position_relative_to.width(); |
int h = position_relative_to.height(); |
- const int arrow_size = images_->arrow_interior_height + kBorderStrokeSize; |
+ const int arrow_size = GetArrowSize(); |
const int arrow_offset = GetArrowOffset(border_size); |
// Calculate bubble x coordinate. |
@@ -320,6 +320,12 @@ int BubbleBorder::GetBorderCornerRadius() const { |
return images_->corner_radius; |
} |
+int BubbleBorder::GetArrowSize() const { |
+ if (arrow_paint_type_ == PAINT_NONE) |
+ return 0; |
+ return images_->arrow_interior_height + kBorderStrokeSize; |
+} |
+ |
int BubbleBorder::GetArrowOffset(const gfx::Size& border_size) const { |
int arrow_offset = arrow_offset_; |
if (override_arrow_offset_) { |
@@ -414,7 +420,8 @@ void BubbleBorder::Paint(const views::View& view, gfx::Canvas* canvas) { |
} |
} |
- const ArrowLocation arrow_location = paint_arrow_ ? arrow_location_ : NONE; |
+ const ArrowLocation arrow_location = |
+ arrow_paint_type_ == PAINT_NORMAL ? arrow_location_ : NONE; |
// Left edge. |
if (arrow_location == LEFT_TOP || |