Chromium Code Reviews| Index: third_party/WebKit/Source/core/editing/LayoutSelection.cpp |
| diff --git a/third_party/WebKit/Source/core/editing/LayoutSelection.cpp b/third_party/WebKit/Source/core/editing/LayoutSelection.cpp |
| index 540146afea59317b2f41c95f2de8b3f74415c3f7..e9dea0bc42d0c99dc5b652af954aa0782c765e11 100644 |
| --- a/third_party/WebKit/Source/core/editing/LayoutSelection.cpp |
| +++ b/third_party/WebKit/Source/core/editing/LayoutSelection.cpp |
| @@ -34,6 +34,7 @@ namespace blink { |
| LayoutSelection::LayoutSelection(FrameSelection& frame_selection) |
| : frame_selection_(&frame_selection), |
| has_pending_selection_(false), |
| + force_hide_(false), |
| selection_start_(nullptr), |
| selection_end_(nullptr), |
| selection_start_pos_(-1), |
| @@ -111,6 +112,14 @@ SelectionInFlatTree LayoutSelection::CalcVisibleSelection( |
| return builder.Build(); |
| } |
| +void LayoutSelection::SetHasPendingSelection(PaintHint hint) { |
| + has_pending_selection_ = true; |
| + if (hint == PaintHint::kHide) |
|
yosin_UTC9
2017/04/13 09:31:50
How about
if (hint == PaintHint::kKeep)
return;
hugoh_UTC2
2017/04/14 01:34:47
Acknowledged. Semantically the same so this is a m
yosin_UTC9
2017/04/14 02:29:16
Blink prefers early-return style, though.
|
| + force_hide_ = true; |
| + else if (hint == PaintHint::kPaint) |
| + force_hide_ = false; |
| +} |
| + |
| void LayoutSelection::Commit(LayoutView& layout_view) { |
| if (!HasPendingSelection()) |
| return; |
| @@ -131,7 +140,7 @@ void LayoutSelection::Commit(LayoutView& layout_view) { |
| const VisibleSelectionInFlatTree& selection = |
| CreateVisibleSelection(CalcVisibleSelection(original_selection)); |
| - if (!selection.IsRange()) { |
| + if (!selection.IsRange() || force_hide_) { |
| ClearSelection(); |
| return; |
| } |
| @@ -170,6 +179,7 @@ void LayoutSelection::Commit(LayoutView& layout_view) { |
| void LayoutSelection::OnDocumentShutdown() { |
| has_pending_selection_ = false; |
| + force_hide_ = false; |
| selection_start_ = nullptr; |
| selection_end_ = nullptr; |
| selection_start_pos_ = -1; |