Index: ui/views/controls/label.cc |
diff --git a/ui/views/controls/label.cc b/ui/views/controls/label.cc |
index 2086222e63f3c879d426a3d4509f7f2ec612a0d8..ada76779cfc7875a48d4f39dda80919f9bd11761 100644 |
--- a/ui/views/controls/label.cc |
+++ b/ui/views/controls/label.cc |
@@ -641,16 +641,31 @@ void Label::ShowContextMenuForView(View* source, |
source_type)); |
} |
-bool Label::GetDecoratedWordAtPoint(const gfx::Point& point, |
- gfx::DecoratedText* decorated_word, |
- gfx::Point* baseline_point) { |
+bool Label::GetDecoratedWordAndBaselineAtPoint( |
+ const gfx::Point& point, |
+ gfx::DecoratedText* decorated_word, |
+ gfx::Point* baseline_point) { |
gfx::RenderText* render_text = GetRenderTextForSelectionController(); |
return render_text |
- ? render_text->GetDecoratedWordAtPoint(point, decorated_word, |
- baseline_point) |
+ ? render_text->GetDecoratedWordAndBaselineAtPoint( |
+ point, decorated_word, baseline_point) |
: false; |
} |
+bool Label::GetDecoratedTextAndBaselineFromSelection( |
+ gfx::DecoratedText* decorated_text, |
+ gfx::Point* baseline_point) { |
+ if (!selectable()) |
+ return false; |
+ |
+ gfx::RenderText* render_text = GetRenderTextForSelectionController(); |
+ if (!render_text) |
+ return false; |
+ |
+ return render_text->GetDecoratedTextAndBaselineForRange( |
+ render_text->selection(), decorated_text, baseline_point); |
+} |
+ |
gfx::RenderText* Label::GetRenderTextForSelectionController() { |
return const_cast<gfx::RenderText*>( |
static_cast<const Label*>(this)->GetRenderTextForSelectionController()); |