@@ -10,7 +10,10 @@ use bevy_ecs::{
1010use bevy_math:: { UVec2 , Vec2 } ;
1111use bevy_utils:: default;
1212
13- use crate :: { layout:: convert, LayoutContext , LayoutError , Measure , MeasureArgs , Node , NodeMeasure } ;
13+ use crate :: {
14+ layout:: convert, LayoutContext , LayoutError , Measure , MeasureArgs , Node , NodeMeasure ,
15+ StyleQueryItem ,
16+ } ;
1417use bevy_text:: CosmicFontSystem ;
1518
1619#[ derive( Debug , Copy , Clone , PartialEq , Eq ) ]
@@ -74,6 +77,7 @@ impl UiSurface {
7477 layout_context : & LayoutContext ,
7578 entity : Entity ,
7679 node : & Node ,
80+ style : StyleQueryItem < ' _ , ' _ > ,
7781 mut new_node_context : Option < NodeMeasure > ,
7882 ) {
7983 let taffy = & mut self . taffy ;
@@ -93,18 +97,18 @@ impl UiSurface {
9397 taffy
9498 . set_style (
9599 taffy_node. id ,
96- convert:: from_node ( node, layout_context, has_measure) ,
100+ convert:: from_node ( node, style , layout_context, has_measure) ,
97101 )
98102 . unwrap ( ) ;
99103 }
100104 Entry :: Vacant ( entry) => {
101105 let taffy_node = if let Some ( measure) = new_node_context. take ( ) {
102106 taffy. new_leaf_with_context (
103- convert:: from_node ( node, layout_context, true ) ,
107+ convert:: from_node ( node, style , layout_context, true ) ,
104108 measure,
105109 )
106110 } else {
107- taffy. new_leaf ( convert:: from_node ( node, layout_context, false ) )
111+ taffy. new_leaf ( convert:: from_node ( node, style , layout_context, false ) )
108112 } ;
109113 entry. insert ( taffy_node. unwrap ( ) . into ( ) ) ;
110114 }
@@ -320,16 +324,29 @@ mod tests {
320324 let mut ui_surface = UiSurface :: default ( ) ;
321325 let root_node_entity = Entity :: from_raw_u32 ( 1 ) . unwrap ( ) ;
322326 let node = Node :: default ( ) ;
327+ let style = StyleQueryItem :: default ( ) ;
323328
324329 // standard upsert
325- ui_surface. upsert_node ( & LayoutContext :: TEST_CONTEXT , root_node_entity, & node, None ) ;
330+ ui_surface. upsert_node (
331+ & LayoutContext :: TEST_CONTEXT ,
332+ root_node_entity,
333+ & node,
334+ style,
335+ None ,
336+ ) ;
326337
327338 // should be inserted into taffy
328339 assert_eq ! ( ui_surface. taffy. total_node_count( ) , 1 ) ;
329340 assert ! ( ui_surface. entity_to_taffy. contains_key( & root_node_entity) ) ;
330341
331342 // test duplicate insert 1
332- ui_surface. upsert_node ( & LayoutContext :: TEST_CONTEXT , root_node_entity, & node, None ) ;
343+ ui_surface. upsert_node (
344+ & LayoutContext :: TEST_CONTEXT ,
345+ root_node_entity,
346+ & node,
347+ style,
348+ None ,
349+ ) ;
333350
334351 // node count should not have increased
335352 assert_eq ! ( ui_surface. taffy. total_node_count( ) , 1 ) ;
@@ -341,7 +358,13 @@ mod tests {
341358 assert_eq ! ( ui_surface. taffy. total_node_count( ) , 2 ) ;
342359
343360 // test duplicate insert 2
344- ui_surface. upsert_node ( & LayoutContext :: TEST_CONTEXT , root_node_entity, & node, None ) ;
361+ ui_surface. upsert_node (
362+ & LayoutContext :: TEST_CONTEXT ,
363+ root_node_entity,
364+ & node,
365+ style,
366+ None ,
367+ ) ;
345368
346369 // node count should not have increased
347370 assert_eq ! ( ui_surface. taffy. total_node_count( ) , 2 ) ;
@@ -352,8 +375,15 @@ mod tests {
352375 let mut ui_surface = UiSurface :: default ( ) ;
353376 let root_node_entity = Entity :: from_raw_u32 ( 1 ) . unwrap ( ) ;
354377 let node = Node :: default ( ) ;
355-
356- ui_surface. upsert_node ( & LayoutContext :: TEST_CONTEXT , root_node_entity, & node, None ) ;
378+ let style = StyleQueryItem :: default ( ) ;
379+
380+ ui_surface. upsert_node (
381+ & LayoutContext :: TEST_CONTEXT ,
382+ root_node_entity,
383+ & node,
384+ style,
385+ None ,
386+ ) ;
357387
358388 ui_surface. get_or_insert_taffy_viewport_node ( root_node_entity) ;
359389
@@ -368,8 +398,15 @@ mod tests {
368398 let mut ui_surface = UiSurface :: default ( ) ;
369399 let root_node_entity = Entity :: from_raw_u32 ( 1 ) . unwrap ( ) ;
370400 let node = Node :: default ( ) ;
371-
372- ui_surface. upsert_node ( & LayoutContext :: TEST_CONTEXT , root_node_entity, & node, None ) ;
401+ let style = StyleQueryItem :: default ( ) ;
402+
403+ ui_surface. upsert_node (
404+ & LayoutContext :: TEST_CONTEXT ,
405+ root_node_entity,
406+ & node,
407+ style,
408+ None ,
409+ ) ;
373410 let mut content_size = ContentSize :: default ( ) ;
374411 content_size. set ( NodeMeasure :: Fixed ( FixedMeasure { size : Vec2 :: ONE } ) ) ;
375412 let measure_func = content_size. measure . take ( ) . unwrap ( ) ;
@@ -384,9 +421,22 @@ mod tests {
384421 let root_node_entity = Entity :: from_raw_u32 ( 1 ) . unwrap ( ) ;
385422 let child_entity = Entity :: from_raw_u32 ( 2 ) . unwrap ( ) ;
386423 let node = Node :: default ( ) ;
387-
388- ui_surface. upsert_node ( & LayoutContext :: TEST_CONTEXT , root_node_entity, & node, None ) ;
389- ui_surface. upsert_node ( & LayoutContext :: TEST_CONTEXT , child_entity, & node, None ) ;
424+ let style = StyleQueryItem :: default ( ) ;
425+
426+ ui_surface. upsert_node (
427+ & LayoutContext :: TEST_CONTEXT ,
428+ root_node_entity,
429+ & node,
430+ style,
431+ None ,
432+ ) ;
433+ ui_surface. upsert_node (
434+ & LayoutContext :: TEST_CONTEXT ,
435+ child_entity,
436+ & node,
437+ style,
438+ None ,
439+ ) ;
390440
391441 ui_surface. update_children ( root_node_entity, vec ! [ child_entity] . into_iter ( ) ) ;
392442
@@ -405,9 +455,22 @@ mod tests {
405455 let root_node_entity = Entity :: from_raw_u32 ( 1 ) . unwrap ( ) ;
406456 let child_entity = Entity :: from_raw_u32 ( 2 ) . unwrap ( ) ;
407457 let node = Node :: default ( ) ;
408-
409- ui_surface. upsert_node ( & LayoutContext :: TEST_CONTEXT , root_node_entity, & node, None ) ;
410- ui_surface. upsert_node ( & LayoutContext :: TEST_CONTEXT , child_entity, & node, None ) ;
458+ let style = StyleQueryItem :: default ( ) ;
459+
460+ ui_surface. upsert_node (
461+ & LayoutContext :: TEST_CONTEXT ,
462+ root_node_entity,
463+ & node,
464+ style,
465+ None ,
466+ ) ;
467+ ui_surface. upsert_node (
468+ & LayoutContext :: TEST_CONTEXT ,
469+ child_entity,
470+ & node,
471+ style,
472+ None ,
473+ ) ;
411474
412475 let root_taffy_node = * ui_surface. entity_to_taffy . get ( & root_node_entity) . unwrap ( ) ;
413476 let child_taffy = * ui_surface. entity_to_taffy . get ( & child_entity) . unwrap ( ) ;
0 commit comments