File tree Expand file tree Collapse file tree 1 file changed +5
-20
lines changed
crates/gosub_css3/src/matcher Expand file tree Collapse file tree 1 file changed +5
-20
lines changed Original file line number Diff line number Diff line change @@ -446,36 +446,21 @@ impl CssProperty {
446
446
}
447
447
448
448
fn find_cascaded_value ( & self ) -> Option < CssValue > {
449
- let mut declared = self . declared . clone ( ) ;
450
-
451
- declared. sort ( ) ;
452
- declared. sort_by ( |a, b| {
453
- if a. priority ( ) == b. priority ( ) {
454
- return Ordering :: Equal ;
455
- }
456
-
457
- a. specificity . cmp ( & b. specificity )
458
- } ) ;
459
-
460
- declared. last ( ) . map ( |d| d. value . clone ( ) )
449
+ self . declared
450
+ . iter ( )
451
+ . max_by ( |a, b| a. cmp ( b) . then_with ( || a. specificity . cmp ( & b. specificity ) ) )
452
+ . map ( |v| v. value . clone ( ) )
461
453
}
462
454
463
455
fn find_specified_value ( & self ) -> CssValue {
464
- match self . declared . iter ( ) . max ( ) {
465
- Some ( decl) => decl. value . clone ( ) ,
466
- None => CssValue :: None ,
467
- }
456
+ self . cascaded . as_ref ( ) . unwrap_or ( & self . inherited ) . clone ( )
468
457
}
469
458
470
459
fn find_computed_value ( & self ) -> CssValue {
471
460
if self . specified != CssValue :: None {
472
461
return self . specified . clone ( ) ;
473
462
}
474
463
475
- if self . inherited != CssValue :: None {
476
- return self . inherited . clone ( ) ;
477
- }
478
-
479
464
self . get_initial_value ( ) . unwrap_or ( CssValue :: None )
480
465
}
481
466
You can’t perform that action at this time.
0 commit comments