mirror of
				https://github.com/RGBCube/serenity
				synced 2025-10-25 04:32:32 +00:00 
			
		
		
		
	 0af8d81f48
			
		
	
	
		0af8d81f48
		
	
	
	
	
		
			
			This allows SVG mask elements to have layout computed, but not connected to the main paint tree. They should only be reachable if (and painted) if referenced by the "mask" attribute of another element. This is controlled by the forms_unconnected_subtree() function on the paintable, which (if it returns true) prevents the paintable from being added as a child to what would be its parent.
		
			
				
	
	
		
			34 lines
		
	
	
	
		
			931 B
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			34 lines
		
	
	
	
		
			931 B
		
	
	
	
		
			C++
		
	
	
	
	
	
| /*
 | |
|  * Copyright (c) 2022, Simon Danner <danner.simon@gmail.com>
 | |
|  *
 | |
|  * SPDX-License-Identifier: BSD-2-Clause
 | |
|  */
 | |
| 
 | |
| #include <LibWeb/Bindings/Intrinsics.h>
 | |
| #include <LibWeb/Layout/SVGBox.h>
 | |
| #include <LibWeb/SVG/SVGDefsElement.h>
 | |
| 
 | |
| namespace Web::SVG {
 | |
| 
 | |
| SVGDefsElement::SVGDefsElement(DOM::Document& document, DOM::QualifiedName qualified_name)
 | |
|     : SVGGraphicsElement(document, move(qualified_name))
 | |
| {
 | |
| }
 | |
| 
 | |
| SVGDefsElement::~SVGDefsElement()
 | |
| {
 | |
| }
 | |
| 
 | |
| void SVGDefsElement::initialize(JS::Realm& realm)
 | |
| {
 | |
|     Base::initialize(realm);
 | |
|     set_prototype(&Bindings::ensure_web_prototype<Bindings::SVGDefsElementPrototype>(realm, "SVGDefsElement"));
 | |
| }
 | |
| 
 | |
| JS::GCPtr<Layout::Node> SVGDefsElement::create_layout_node(NonnullRefPtr<CSS::StyleProperties> style)
 | |
| {
 | |
|     // FIXME: We need this layout node so any <mask>s inside this element get layout computed.
 | |
|     return heap().allocate_without_realm<Layout::SVGBox>(document(), *this, move(style));
 | |
| }
 | |
| 
 | |
| }
 |