OLD | NEW |
1 /* | 1 /* |
2 * (C) 1999 Lars Knoll (knoll@kde.org) | 2 * (C) 1999 Lars Knoll (knoll@kde.org) |
3 * (C) 2000 Dirk Mueller (mueller@kde.org) | 3 * (C) 2000 Dirk Mueller (mueller@kde.org) |
4 * Copyright (C) 2004, 2005, 2006, 2007 Apple Inc. All rights reserved. | 4 * Copyright (C) 2004, 2005, 2006, 2007 Apple Inc. All rights reserved. |
5 * Copyright (C) 2006 Andrew Wellington (proton@wiretapped.net) | 5 * Copyright (C) 2006 Andrew Wellington (proton@wiretapped.net) |
6 * Copyright (C) 2006 Graham Dennis (graham.dennis@gmail.com) | 6 * Copyright (C) 2006 Graham Dennis (graham.dennis@gmail.com) |
7 * | 7 * |
8 * This library is free software; you can redistribute it and/or | 8 * This library is free software; you can redistribute it and/or |
9 * modify it under the terms of the GNU Library General Public | 9 * modify it under the terms of the GNU Library General Public |
10 * License as published by the Free Software Foundation; either | 10 * License as published by the Free Software Foundation; either |
(...skipping 1541 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1552 return first_text_box_ ? first_text_box_->Y().ToFloat() : 0; | 1552 return first_text_box_ ? first_text_box_->Y().ToFloat() : 0; |
1553 } | 1553 } |
1554 | 1554 |
1555 void LayoutText::SetSelectionState(SelectionState state) { | 1555 void LayoutText::SetSelectionState(SelectionState state) { |
1556 LayoutObject::SetSelectionState(state); | 1556 LayoutObject::SetSelectionState(state); |
1557 | 1557 |
1558 if (CanUpdateSelectionOnRootLineBoxes()) { | 1558 if (CanUpdateSelectionOnRootLineBoxes()) { |
1559 if (state == SelectionStart || state == SelectionEnd || | 1559 if (state == SelectionStart || state == SelectionEnd || |
1560 state == SelectionBoth) { | 1560 state == SelectionBoth) { |
1561 int start_pos, end_pos; | 1561 int start_pos, end_pos; |
1562 SelectionStartEnd(start_pos, end_pos); | 1562 std::tie(start_pos, end_pos) = SelectionStartEnd(); |
1563 if (GetSelectionState() == SelectionStart) { | 1563 if (GetSelectionState() == SelectionStart) { |
1564 end_pos = TextLength(); | 1564 end_pos = TextLength(); |
1565 | 1565 |
1566 // to handle selection from end of text to end of line | 1566 // to handle selection from end of text to end of line |
1567 if (start_pos && start_pos == end_pos) | 1567 if (start_pos && start_pos == end_pos) |
1568 start_pos = end_pos - 1; | 1568 start_pos = end_pos - 1; |
1569 } else if (GetSelectionState() == SelectionEnd) { | 1569 } else if (GetSelectionState() == SelectionEnd) { |
1570 start_pos = 0; | 1570 start_pos = 0; |
1571 } | 1571 } |
1572 | 1572 |
(...skipping 445 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2018 return LayoutRect(); | 2018 return LayoutRect(); |
2019 | 2019 |
2020 // Now calculate startPos and endPos for painting selection. | 2020 // Now calculate startPos and endPos for painting selection. |
2021 // We include a selection while endPos > 0 | 2021 // We include a selection while endPos > 0 |
2022 int start_pos, end_pos; | 2022 int start_pos, end_pos; |
2023 if (GetSelectionState() == SelectionInside) { | 2023 if (GetSelectionState() == SelectionInside) { |
2024 // We are fully selected. | 2024 // We are fully selected. |
2025 start_pos = 0; | 2025 start_pos = 0; |
2026 end_pos = TextLength(); | 2026 end_pos = TextLength(); |
2027 } else { | 2027 } else { |
2028 SelectionStartEnd(start_pos, end_pos); | 2028 std::tie(start_pos, end_pos) = SelectionStartEnd(); |
2029 if (GetSelectionState() == SelectionStart) | 2029 if (GetSelectionState() == SelectionStart) |
2030 end_pos = TextLength(); | 2030 end_pos = TextLength(); |
2031 else if (GetSelectionState() == SelectionEnd) | 2031 else if (GetSelectionState() == SelectionEnd) |
2032 start_pos = 0; | 2032 start_pos = 0; |
2033 } | 2033 } |
2034 | 2034 |
2035 LayoutRect rect; | 2035 LayoutRect rect; |
2036 | 2036 |
2037 if (start_pos == end_pos) | 2037 if (start_pos == end_pos) |
2038 return rect; | 2038 return rect; |
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2130 LayoutRect rect = LayoutRect( | 2130 LayoutRect rect = LayoutRect( |
2131 IntRect(FirstRunX(), FirstRunY(), lines_box.Width(), lines_box.Height())); | 2131 IntRect(FirstRunX(), FirstRunY(), lines_box.Width(), lines_box.Height())); |
2132 LayoutBlock* block = ContainingBlock(); | 2132 LayoutBlock* block = ContainingBlock(); |
2133 if (block && HasTextBoxes()) | 2133 if (block && HasTextBoxes()) |
2134 block->AdjustChildDebugRect(rect); | 2134 block->AdjustChildDebugRect(rect); |
2135 | 2135 |
2136 return rect; | 2136 return rect; |
2137 } | 2137 } |
2138 | 2138 |
2139 } // namespace blink | 2139 } // namespace blink |
OLD | NEW |