mirror of
				https://github.com/RGBCube/serenity
				synced 2025-10-31 10:22:45 +00:00 
			
		
		
		
	LibWeb: Move innerText from DOM::Element to HTML::HTMLElement
This commit is contained in:
		
							parent
							
								
									bb22b04d44
								
							
						
					
					
						commit
						397049aae8
					
				
					 6 changed files with 40 additions and 38 deletions
				
			
		|  | @ -41,7 +41,6 @@ | |||
| #include <LibWeb/Layout/LayoutTableCell.h> | ||||
| #include <LibWeb/Layout/LayoutTableRow.h> | ||||
| #include <LibWeb/Layout/LayoutTableRowGroup.h> | ||||
| #include <LibWeb/Layout/LayoutText.h> | ||||
| #include <LibWeb/Layout/LayoutTreeBuilder.h> | ||||
| 
 | ||||
| namespace Web::DOM { | ||||
|  | @ -296,39 +295,6 @@ String Element::inner_html() const | |||
|     return builder.to_string(); | ||||
| } | ||||
| 
 | ||||
| void Element::set_inner_text(StringView text) | ||||
| { | ||||
|     remove_all_children(); | ||||
|     append_child(document().create_text_node(text)); | ||||
| 
 | ||||
|     set_needs_style_update(true); | ||||
|     document().schedule_style_update(); | ||||
|     document().invalidate_layout(); | ||||
| } | ||||
| 
 | ||||
| String Element::inner_text() | ||||
| { | ||||
|     StringBuilder builder; | ||||
| 
 | ||||
|     // innerText for element being rendered takes visibility into account, so force a layout and then walk the layout tree.
 | ||||
|     document().layout(); | ||||
|     if (!layout_node()) | ||||
|         return text_content(); | ||||
| 
 | ||||
|     Function<void(const LayoutNode&)> recurse = [&](auto& node) { | ||||
|         for (auto* child = node.first_child(); child; child = child->next_sibling()) { | ||||
|             if (child->is_text()) | ||||
|                 builder.append(downcast<LayoutText>(*child).text_for_rendering()); | ||||
|             if (child->is_break()) | ||||
|                 builder.append('\n'); | ||||
|             recurse(*child); | ||||
|         } | ||||
|     }; | ||||
|     recurse(*layout_node()); | ||||
| 
 | ||||
|     return builder.to_string(); | ||||
| } | ||||
| 
 | ||||
| bool Element::is_focused() const | ||||
| { | ||||
|     return document().focused_element() == this; | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Luke
						Luke