@@ -125,6 +125,12 @@ impl TextInfo {
125
125
max_content_height : Len ,
126
126
) -> Size < Len > {
127
127
let text_len = self . text_len ;
128
+ if text_len == 0 {
129
+ println ! (
130
+ "text_info: {self:?}, width: {min_width:?} ~ {max_width:?}, height: {min_height:?} ~ {max_height:?}, max_content_width: {max_content_width:?}, max_content_height: {max_content_height:?}, measured_width: 0, measured_height: 0" ,
131
+ ) ;
132
+ return Size :: new ( Len :: zero ( ) , Len :: zero ( ) ) ;
133
+ }
128
134
let text_width = self . font_size * text_len as f32 ;
129
135
let max_w = max_width. min ( max_content_width) ;
130
136
let max_h = max_height. min ( max_content_height) ;
@@ -188,6 +194,11 @@ fn convert_font_size_to_px(font_size: float_pigment_css::typing::Length) -> f32
188
194
#[ inline( always) ]
189
195
fn prepare_measure_node ( node : * mut Node , text_info : TextInfo ) {
190
196
let node = unsafe { & mut * node } ;
197
+ unsafe {
198
+ node. set_display ( Display :: Inline ) ;
199
+ node. set_node_type ( float_pigment_forest:: NodeType :: Text ) ;
200
+ }
201
+ node. set_baseline_func ( Some ( Box :: new ( |_, _, _| Len :: from_f32 ( 16. ) ) ) ) ;
191
202
node. set_measure_func ( Some ( Box :: new (
192
203
move |_,
193
204
max_width,
@@ -208,11 +219,6 @@ fn prepare_measure_node(node: *mut Node, text_info: TextInfo) {
208
219
)
209
220
} ,
210
221
) ) ) ;
211
- unsafe {
212
- node. set_display ( Display :: Inline ) ;
213
- node. set_baseline_func ( Some ( Box :: new ( |_, _, _| Len :: from_f32 ( 16. ) ) ) ) ;
214
- node. set_node_type ( float_pigment_forest:: NodeType :: Text ) ;
215
- }
216
222
}
217
223
218
224
impl TestCtx {
@@ -385,7 +391,6 @@ impl TestCtx {
385
391
self . set_expect_layout_pos ( node, e. attributes ( ) ) ;
386
392
387
393
if is_measure_text_slot ( e. tag ( ) ) {
388
- let node = Node :: new_ptr ( ) ;
389
394
let text_len = e
390
395
. attributes ( )
391
396
. get ( "len" )
0 commit comments