Index: ui/views/bubble/bubble_delegate.cc |
diff --git a/ui/views/bubble/bubble_delegate.cc b/ui/views/bubble/bubble_delegate.cc |
index 706475f652a4d235b3367df0999d8ca05cd458e0..144343700342eee6fd12419f93f9b0ca72746c5c 100644 |
--- a/ui/views/bubble/bubble_delegate.cc |
+++ b/ui/views/bubble/bubble_delegate.cc |
@@ -107,6 +107,7 @@ BubbleDelegateView::BubbleDelegateView() |
anchor_widget_(NULL), |
move_with_anchor_(false), |
arrow_(BubbleBorder::TOP_LEFT), |
+ arrow_offset_(0), |
shadow_(BubbleBorder::SMALL_SHADOW), |
color_explicitly_set_(false), |
margins_(kDefaultMargin, kDefaultMargin, kDefaultMargin, kDefaultMargin), |
@@ -130,6 +131,7 @@ BubbleDelegateView::BubbleDelegateView( |
anchor_widget_(NULL), |
move_with_anchor_(false), |
arrow_(arrow), |
+ arrow_offset_(0), |
shadow_(BubbleBorder::SMALL_SHADOW), |
color_explicitly_set_(false), |
margins_(kDefaultMargin, kDefaultMargin, kDefaultMargin, kDefaultMargin), |
@@ -190,7 +192,10 @@ NonClientFrameView* BubbleDelegateView::CreateNonClientFrameView( |
BubbleFrameView* frame = new BubbleFrameView(margins()); |
const BubbleBorder::Arrow adjusted_arrow = base::i18n::IsRTL() ? |
BubbleBorder::horizontal_mirror(arrow()) : arrow(); |
- frame->SetBubbleBorder(new BubbleBorder(adjusted_arrow, shadow(), color())); |
+ BubbleBorder* border = new BubbleBorder(adjusted_arrow, shadow(), color()); |
+ if (arrow_offset_) |
+ border->set_arrow_offset(arrow_offset_); |
+ frame->SetBubbleBorder(border); |
return frame; |
} |
@@ -267,6 +272,12 @@ void BubbleDelegateView::SetAlignment(BubbleBorder::BubbleAlignment alignment) { |
SizeToContents(); |
} |
+void BubbleDelegateView::SetArrowOffset(int offset) { |
+ arrow_offset_ = offset; |
+ if (GetBubbleFrameView() && GetBubbleFrameView()->bubble_border()) |
msw
2013/05/21 01:41:27
You should be able to do this in the PopupMessage:
Mr4D (OOO till 08-26)
2013/05/21 17:26:40
Well - it appears that you have never tried this b
|
+ GetBubbleFrameView()->bubble_border()->set_arrow_offset(offset); |
+} |
+ |
bool BubbleDelegateView::AcceleratorPressed( |
const ui::Accelerator& accelerator) { |
if (!close_on_esc() || accelerator.key_code() != ui::VKEY_ESCAPE) |