@@ -730,7 +730,8 @@ pub(crate) struct AlignHandler {
730730 flex_align : Option < ( FlexAlign , VendorPrefix ) > ,
731731 justify_items : Option < JustifyItems > ,
732732 row_gap : Option < GapValue > ,
733- column_gap : Option < GapValue >
733+ column_gap : Option < GapValue > ,
734+ has_any : bool
734735}
735736
736737impl AlignHandler {
@@ -761,7 +762,8 @@ impl PropertyHandler for AlignHandler {
761762 * val = $val. clone( ) ;
762763 * prefixes |= * $vp;
763764 } else {
764- self . $prop = Some ( ( $val. clone( ) , * $vp) )
765+ self . $prop = Some ( ( $val. clone( ) , * $vp) ) ;
766+ self . has_any = true ;
765767 }
766768 } } ;
767769 }
@@ -791,7 +793,10 @@ impl PropertyHandler for AlignHandler {
791793 property ! ( align_self, val, vp) ;
792794 } ,
793795 FlexItemAlign ( val, vp) => property ! ( flex_item_align, val, vp) ,
794- JustifySelf ( val) => self . justify_self = Some ( val. clone ( ) ) ,
796+ JustifySelf ( val) => {
797+ self . justify_self = Some ( val. clone ( ) ) ;
798+ self . has_any = true ;
799+ } ,
795800 PlaceSelf ( val) => {
796801 self . flex_item_align = None ;
797802 property ! ( align_self, & val. align, & VendorPrefix :: None ) ;
@@ -804,18 +809,28 @@ impl PropertyHandler for AlignHandler {
804809 } ,
805810 BoxAlign ( val, vp) => property ! ( box_align, val, vp) ,
806811 FlexAlign ( val, vp) => property ! ( flex_align, val, vp) ,
807- JustifyItems ( val) => self . justify_items = Some ( val. clone ( ) ) ,
812+ JustifyItems ( val) => {
813+ self . justify_items = Some ( val. clone ( ) ) ;
814+ self . has_any = true ;
815+ } ,
808816 PlaceItems ( val) => {
809817 self . box_align = None ;
810818 self . flex_align = None ;
811819 property ! ( align_items, & val. align, & VendorPrefix :: None ) ;
812820 self . justify_items = Some ( val. justify . clone ( ) ) ;
813821 }
814- RowGap ( val) => self . row_gap = Some ( val. clone ( ) ) ,
815- ColumnGap ( val) => self . column_gap = Some ( val. clone ( ) ) ,
822+ RowGap ( val) => {
823+ self . row_gap = Some ( val. clone ( ) ) ;
824+ self . has_any = true ;
825+ } ,
826+ ColumnGap ( val) => {
827+ self . column_gap = Some ( val. clone ( ) ) ;
828+ self . has_any = true ;
829+ } ,
816830 Gap ( val) => {
817831 self . row_gap = Some ( val. row . clone ( ) ) ;
818832 self . column_gap = Some ( val. column . clone ( ) ) ;
833+ self . has_any = true ;
819834 }
820835 Unparsed ( val) if is_align_property ( & val. property_id ) => {
821836 self . flush ( dest) ;
@@ -834,6 +849,12 @@ impl PropertyHandler for AlignHandler {
834849
835850impl AlignHandler {
836851 fn flush ( & mut self , dest : & mut DeclarationList ) {
852+ if !self . has_any {
853+ return
854+ }
855+
856+ self . has_any = false ;
857+
837858 let mut align_content = std:: mem:: take ( & mut self . align_content ) ;
838859 let mut justify_content = std:: mem:: take ( & mut self . justify_content ) ;
839860 let mut align_self = std:: mem:: take ( & mut self . align_self ) ;
0 commit comments