|
@@ -46,12 +46,16 @@ void LineBuilder::append_text_chunk(TextNode& text_node, size_t offset_in_node,
|
|
|
m_max_height_on_current_line = max(m_max_height_on_current_line, height);
|
|
|
}
|
|
|
|
|
|
-void LineBuilder::break_if_needed(LayoutMode layout_mode, float next_item_width, bool should_force_break)
|
|
|
+bool LineBuilder::should_break(LayoutMode layout_mode, float next_item_width, bool should_force_break)
|
|
|
{
|
|
|
- if (layout_mode == LayoutMode::AllPossibleLineBreaks
|
|
|
- || should_force_break
|
|
|
- || (m_context.containing_block().line_boxes().last().width() + next_item_width) > m_available_width_for_current_line)
|
|
|
- break_line();
|
|
|
+ if (layout_mode == LayoutMode::AllPossibleLineBreaks)
|
|
|
+ return true;
|
|
|
+ if (should_force_break)
|
|
|
+ return true;
|
|
|
+ if (layout_mode == LayoutMode::OnlyRequiredLineBreaks)
|
|
|
+ return false;
|
|
|
+ auto current_line_width = m_context.containing_block().line_boxes().last().width();
|
|
|
+ return (current_line_width + next_item_width) > m_available_width_for_current_line;
|
|
|
}
|
|
|
|
|
|
void LineBuilder::update_last_line()
|