diff options
author | Yuri Kobets <[email protected]> | 2024-01-31 03:48:44 +0300 |
---|---|---|
committer | GitHub <[email protected]> | 2024-01-31 03:48:44 +0300 |
commit | 6ca1ab0419e770e6d35a1ef690238773a1dafcee (patch) | |
tree | 16df635edd594dc1d1b9d0044993e2ae4d0e0200 /src/render_inline_context.cpp | |
parent | 8c320007878795fe629de7fe1eaef9328ac9c719 (diff) | |
parent | d85ebec101e77825e5708e58df0e2508ec4fd389 (diff) |
Flex layout
Diffstat (limited to 'src/render_inline_context.cpp')
-rw-r--r-- | src/render_inline_context.cpp | 41 |
1 files changed, 25 insertions, 16 deletions
diff --git a/src/render_inline_context.cpp b/src/render_inline_context.cpp index 2d8f2e17..4f5d7701 100644 --- a/src/render_inline_context.cpp +++ b/src/render_inline_context.cpp @@ -382,21 +382,30 @@ void litehtml::render_item_inline_context::apply_vertical_align() } } -int litehtml::render_item_inline_context::get_base_line() +int litehtml::render_item_inline_context::get_first_baseline() { - auto el_parent = parent(); - if(el_parent && src_el()->css().get_display() == display_inline_flex) - { - return el_parent->get_base_line(); - } - if(src_el()->is_replaced()) - { - return 0; - } - int bl = 0; - if(!m_line_boxes.empty()) - { - bl = m_line_boxes.back()->baseline() + content_offset_bottom(); - } - return bl; + int bl; + if(!m_line_boxes.empty()) + { + const auto &line = m_line_boxes.front(); + bl = line->bottom() - line->baseline() + content_offset_top(); + } else + { + bl = height() - margin_bottom(); + } + return bl; +} + +int litehtml::render_item_inline_context::get_last_baseline() +{ + int bl; + if(!m_line_boxes.empty()) + { + const auto &line = m_line_boxes.back(); + bl = line->bottom() - line->baseline() + content_offset_top(); + } else + { + bl = height() - margin_bottom(); + } + return bl; } |