File tree Expand file tree Collapse file tree 2 files changed +28
-2
lines changed
float-pigment-forest/tests/custom
float-pigment-layout/src/algo Expand file tree Collapse file tree 2 files changed +28
-2
lines changed Original file line number Diff line number Diff line change @@ -657,3 +657,25 @@ pub fn aspect_ratio_block_size_with_box_sizing_and_writing_mode() {
657
657
assert_eq ! ( child3. layout_position( ) . height, 100. ) ;
658
658
}
659
659
}
660
+
661
+ #[ test]
662
+ pub fn apsect_ratio_writing_mode_streched ( ) {
663
+ assert_xml ! (
664
+ r#"
665
+ <div>
666
+ <div style="height: 400px; width: 300px;">
667
+ <div style="background: red; aspect-ratio: 3 / 1; min-width: 600px" expect_width="600" expect_height="200"></div>
668
+ <div style="background: blue; aspect-ratio: 3 / 1; max-width: 60px" expect_width="60" expect_height="20"></div>
669
+ </div>
670
+ <div style="height: 300px; width: 400px; writing-mode: vertical-lr">
671
+ <div style="background: red; aspect-ratio: 1 / 3; min-height: 600px" expect_width="200" expect_height="600"></div>
672
+ <div style="background: blue; aspect-ratio: 1 / 3; max-height: 60px" expect_width="20" expect_height="60"></div>
673
+ </div>
674
+ <div style="height: 300px; width: 400px; writing-mode: vertical-lr">
675
+ <div style="background: green; aspect-ratio: 3 / 1; min-height: 500px" expect_width="1500" expect_height="500"></div>
676
+ <div style="background: blue; aspect-ratio: 3 / 1; max-height: 90px" expect_width="270" expect_height="90"></div>
677
+ </div>
678
+ </div>
679
+ "#
680
+ )
681
+ }
Original file line number Diff line number Diff line change @@ -823,9 +823,13 @@ pub(crate) fn transfer_min_max_size<L: LengthNum>(
823
823
return min_max_limit;
824
824
}
825
825
let mut transfer_limit = min_max_limit. clone ( ) ;
826
+ let resolve_func = match main_dir {
827
+ AxisDirection :: Horizontal => resolve_width_from_aspect_ratio,
828
+ AxisDirection :: Vertical => resolve_height_from_aspect_ratio,
829
+ } ;
826
830
827
831
if min_max_limit. min_cross_size ( main_dir) . is_positive ( ) {
828
- let min_main_size = resolve_height_from_aspect_ratio (
832
+ let min_main_size = resolve_func (
829
833
border,
830
834
padding_border,
831
835
& box_sizing,
@@ -838,7 +842,7 @@ pub(crate) fn transfer_min_max_size<L: LengthNum>(
838
842
}
839
843
840
844
if min_max_limit. max_cross_size ( main_dir) . is_some ( ) {
841
- let mut max_main_size = resolve_height_from_aspect_ratio (
845
+ let mut max_main_size = resolve_func (
842
846
border,
843
847
padding_border,
844
848
& box_sizing,
You can’t perform that action at this time.
0 commit comments