mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-07-29 04:09:13 +00:00
LibWeb: Implement the "push down values" editing algorithm
This commit is contained in:
parent
9bcf2fc0f5
commit
9750896af3
Notes:
github-actions[bot]
2025-01-10 22:37:51 +00:00
Author: https://github.com/gmta
Commit: 9750896af3
Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/3216
3 changed files with 627 additions and 4 deletions
|
@ -36,6 +36,7 @@ GC::Ref<DOM::Range> block_extend_a_range(GC::Ref<DOM::Range>);
|
|||
GC::Ptr<DOM::Node> block_node_of_node(GC::Ref<DOM::Node>);
|
||||
String canonical_space_sequence(u32 length, bool non_breaking_start, bool non_breaking_end);
|
||||
void canonicalize_whitespace(DOM::BoundaryPoint, bool fix_collapsed_space = true);
|
||||
Vector<GC::Ref<DOM::Node>> clear_the_value(FlyString const&, GC::Ref<DOM::Element>);
|
||||
void delete_the_selection(Selection&, bool block_merging = true, bool strip_wrappers = true,
|
||||
Selection::Direction direction = Selection::Direction::Forwards);
|
||||
GC::Ptr<DOM::Node> editing_host_of_node(GC::Ref<DOM::Node>);
|
||||
|
@ -43,6 +44,7 @@ Optional<String> effective_command_value(GC::Ptr<DOM::Node>, FlyString const& co
|
|||
DOM::BoundaryPoint first_equivalent_point(DOM::BoundaryPoint);
|
||||
void fix_disallowed_ancestors_of_node(GC::Ref<DOM::Node>);
|
||||
bool follows_a_line_break(GC::Ref<DOM::Node>);
|
||||
void force_the_value(GC::Ref<DOM::Node>, FlyString const&, Optional<String>);
|
||||
bool is_allowed_child_of_node(Variant<GC::Ref<DOM::Node>, FlyString> child, Variant<GC::Ref<DOM::Node>, FlyString> parent);
|
||||
bool is_block_boundary_point(DOM::BoundaryPoint);
|
||||
bool is_block_end_point(DOM::BoundaryPoint);
|
||||
|
@ -58,10 +60,12 @@ bool is_formattable_node(GC::Ref<DOM::Node>);
|
|||
bool is_in_same_editing_host(GC::Ref<DOM::Node>, GC::Ref<DOM::Node>);
|
||||
bool is_inline_node(GC::Ref<DOM::Node>);
|
||||
bool is_invisible_node(GC::Ref<DOM::Node>);
|
||||
bool is_modifiable_element(GC::Ref<DOM::Node>);
|
||||
bool is_name_of_an_element_with_inline_contents(FlyString const&);
|
||||
bool is_non_list_single_line_container(GC::Ref<DOM::Node>);
|
||||
bool is_prohibited_paragraph_child(GC::Ref<DOM::Node>);
|
||||
bool is_prohibited_paragraph_child_name(FlyString const&);
|
||||
bool is_simple_modifiable_element(GC::Ref<DOM::Node>);
|
||||
bool is_single_line_container(GC::Ref<DOM::Node>);
|
||||
bool is_visible_node(GC::Ref<DOM::Node>);
|
||||
bool is_whitespace_node(GC::Ref<DOM::Node>);
|
||||
|
@ -72,6 +76,7 @@ Optional<DOM::BoundaryPoint> next_equivalent_point(DOM::BoundaryPoint);
|
|||
void normalize_sublists_in_node(GC::Ref<DOM::Node>);
|
||||
bool precedes_a_line_break(GC::Ref<DOM::Node>);
|
||||
Optional<DOM::BoundaryPoint> previous_equivalent_point(DOM::BoundaryPoint);
|
||||
void push_down_values(FlyString const&, GC::Ref<DOM::Node>, Optional<String>);
|
||||
Vector<RecordedOverride> record_current_overrides(DOM::Document const&);
|
||||
Vector<RecordedOverride> record_current_states_and_values(DOM::Document const&);
|
||||
Vector<RecordedNodeValue> record_the_values_of_nodes(Vector<GC::Ref<DOM::Node>> const&);
|
||||
|
@ -79,6 +84,7 @@ void remove_extraneous_line_breaks_at_the_end_of_node(GC::Ref<DOM::Node>);
|
|||
void remove_extraneous_line_breaks_before_node(GC::Ref<DOM::Node>);
|
||||
void remove_extraneous_line_breaks_from_a_node(GC::Ref<DOM::Node>);
|
||||
void remove_node_preserving_its_descendants(GC::Ref<DOM::Node>);
|
||||
void reorder_modifiable_descendants(GC::Ref<DOM::Node>, FlyString const&, Optional<String>);
|
||||
void restore_states_and_values(DOM::Document&, Vector<RecordedOverride> const&);
|
||||
void restore_the_values_of_nodes(Vector<RecordedNodeValue> const&);
|
||||
GC::Ref<DOM::Element> set_the_tag_name(GC::Ref<DOM::Element>, FlyString const&);
|
||||
|
@ -95,6 +101,7 @@ CSSPixels font_size_to_pixel_size(StringView);
|
|||
void for_each_node_effectively_contained_in_range(GC::Ptr<DOM::Range>, Function<TraversalDecision(GC::Ref<DOM::Node>)>);
|
||||
bool has_visible_children(GC::Ref<DOM::Node>);
|
||||
bool is_heading(FlyString const&);
|
||||
Array<StringView, 7> named_font_sizes();
|
||||
Optional<NonnullRefPtr<CSS::CSSStyleValue const>> property_in_style_attribute(GC::Ref<DOM::Element>, CSS::PropertyID);
|
||||
Optional<CSS::Display> resolved_display(GC::Ref<DOM::Node>);
|
||||
Optional<CSS::Keyword> resolved_keyword(GC::Ref<DOM::Node>, CSS::PropertyID);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue