diff options
Diffstat (limited to 'chromium/third_party/blink/renderer/core/layout/geometry/logical_offset.cc')
-rw-r--r-- | chromium/third_party/blink/renderer/core/layout/geometry/logical_offset.cc | 42 |
1 files changed, 11 insertions, 31 deletions
diff --git a/chromium/third_party/blink/renderer/core/layout/geometry/logical_offset.cc b/chromium/third_party/blink/renderer/core/layout/geometry/logical_offset.cc index 5d3cbbb6de6..90ed61b1a34 100644 --- a/chromium/third_party/blink/renderer/core/layout/geometry/logical_offset.cc +++ b/chromium/third_party/blink/renderer/core/layout/geometry/logical_offset.cc @@ -7,44 +7,24 @@ #include "third_party/blink/renderer/core/layout/geometry/logical_size.h" #include "third_party/blink/renderer/core/layout/geometry/physical_offset.h" #include "third_party/blink/renderer/core/layout/geometry/physical_size.h" +#include "third_party/blink/renderer/core/layout/geometry/writing_mode_converter.h" #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h" namespace blink { -PhysicalOffset LogicalOffset::ConvertToPhysical(WritingMode mode, +PhysicalOffset LogicalOffset::ConvertToPhysical( + WritingDirectionMode writing_direction, + PhysicalSize outer_size, + PhysicalSize inner_size) const { + return WritingModeConverter(writing_direction, outer_size) + .ToPhysical(*this, inner_size); +} + +PhysicalOffset LogicalOffset::ConvertToPhysical(WritingMode writing_mode, TextDirection direction, PhysicalSize outer_size, PhysicalSize inner_size) const { - switch (mode) { - case WritingMode::kHorizontalTb: - if (direction == TextDirection::kLtr) - return PhysicalOffset(inline_offset, block_offset); - return PhysicalOffset(outer_size.width - inline_offset - inner_size.width, - block_offset); - case WritingMode::kVerticalRl: - case WritingMode::kSidewaysRl: - if (direction == TextDirection::kLtr) { - return PhysicalOffset( - outer_size.width - block_offset - inner_size.width, inline_offset); - } - return PhysicalOffset( - outer_size.width - block_offset - inner_size.width, - outer_size.height - inline_offset - inner_size.height); - case WritingMode::kVerticalLr: - if (direction == TextDirection::kLtr) - return PhysicalOffset(block_offset, inline_offset); - return PhysicalOffset( - block_offset, outer_size.height - inline_offset - inner_size.height); - case WritingMode::kSidewaysLr: - if (direction == TextDirection::kLtr) { - return PhysicalOffset(block_offset, outer_size.height - inline_offset - - inner_size.height); - } - return PhysicalOffset(block_offset, inline_offset); - default: - NOTREACHED(); - return PhysicalOffset(); - } + return ConvertToPhysical({writing_mode, direction}, outer_size, inner_size); } String LogicalOffset::ToString() const { |