Skip to content

Commit a34e90e

Browse files
authored
Adjust sizing logic for IMG tag (#854)
1 parent 2d4c97c commit a34e90e

21 files changed

+427
-361
lines changed

demo_app/test/goldens.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@
4242
"IMG/inline_height_only": "Foo <img src=\"asset:images/100x10.png\" height=\"5\" /> bar.",
4343
"IMG/inline_small": "Foo <img src=\"asset:images/100x10.png\" /> bar.",
4444
"IMG/inline_small_dimensions": "Foo <img src=\"asset:images/100x10.png\" width=\"100\" height=\"10\" /> bar.",
45+
"IMG/inline_small_dimensions_then_padding": "Foo <img src=\"asset:images/100x10.png\" height=\"10\" width=\"100\" style=\"padding-inline-end: 50px\" /> bar.",
4546
"IMG/inline_width_only": "Foo <img src=\"asset:images/100x10.png\" width=\"50\" /> bar.",
4647
"IMG/downscale/block_both": "Foo <img src=\"asset:images/2000x200.png\" style=\"display: block; height: 20px; width: 200px\" /> bar.",
4748
"IMG/downscale/block_height": "Foo <img src=\"asset:images/2000x200.png\" style=\"display: block; height: 20px\" /> bar.",
9.55 KB
Loading
35 Bytes
Loading

demo_app/test/li/li_within_li.png

-403 Bytes
Loading
554 Bytes
Loading
-26 Bytes
Loading

packages/core/lib/src/core_widget_factory.dart

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -28,12 +28,10 @@ class WidgetFactory {
2828

2929
BuildOp? _styleBgColor;
3030
BuildOp? _styleBorder;
31-
BuildOp? _styleDisplayBlock;
3231
BuildOp? _styleDisplayInlineBlock;
3332
BuildOp? _styleDisplayNone;
3433
BuildOp? _styleMargin;
3534
BuildOp? _stylePadding;
36-
BuildOp? _styleSizing;
3735
BuildOp? _styleTextDecoration;
3836
BuildOp? _styleVerticalAlign;
3937
BuildOp? _tagA;
@@ -1002,8 +1000,7 @@ class WidgetFactory {
10021000
case kCssMinHeight:
10031001
case kCssMinWidth:
10041002
case kCssWidth:
1005-
_styleSizing ??= StyleSizing(this).buildOp;
1006-
meta.register(_styleSizing!);
1003+
StyleSizing.registerSizing(this, meta);
10071004
break;
10081005

10091006
case kCssLineHeight:
@@ -1076,10 +1073,11 @@ class WidgetFactory {
10761073

10771074
/// Parses display inline style.
10781075
void parseStyleDisplay(BuildMetadata meta, String? value) {
1076+
StyleSizing.registerChild(this, meta);
1077+
10791078
switch (value) {
10801079
case kCssDisplayBlock:
1081-
final displayBlock = _styleDisplayBlock ??= DisplayBlockOp(this);
1082-
meta.register(displayBlock);
1080+
StyleSizing.registerBlock(this, meta);
10831081
break;
10841082
case kCssDisplayInlineBlock:
10851083
final displayInlineBlock = _styleDisplayInlineBlock ??= BuildOp(

packages/core/lib/src/internal/ops/style_bg_color.dart

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ const kCssBackground = 'background';
44
const kCssBackgroundColor = 'background-color';
55

66
class StyleBgColor {
7+
static const kPriorityBoxModel7k5 = 7500;
8+
79
final WidgetFactory wf;
810

911
static final _skipBuilding = Expando<bool>();
@@ -42,7 +44,7 @@ class StyleBgColor {
4244
);
4345
},
4446
onWidgetsIsOptional: true,
45-
priority: StyleBorder.kPriorityBoxModel5k + 1,
47+
priority: kPriorityBoxModel7k5,
4648
);
4749

4850
Color? _parseColor(WidgetFactory wf, BuildMetadata meta) {

packages/core/lib/src/internal/ops/style_border.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ const kCssBoxSizingContentBox = 'content-box';
55
const kCssBoxSizingBorderBox = 'border-box';
66

77
class StyleBorder {
8-
static const kPriorityBoxModel5k = 5000;
8+
static const kPriorityBoxModel7k = 7000;
99

1010
final WidgetFactory wf;
1111

@@ -62,7 +62,7 @@ class StyleBorder {
6262
];
6363
},
6464
onWidgetsIsOptional: true,
65-
priority: kPriorityBoxModel5k,
65+
priority: kPriorityBoxModel7k,
6666
);
6767

6868
Widget? _buildBorder(

packages/core/lib/src/internal/ops/style_padding.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ Widget _paddingInlineSizedBox(double? width) =>
1818
width != null && width > 0 ? SizedBox(width: width) : widget0;
1919

2020
class StylePadding {
21-
static const kPriorityBoxModel3k = 3000;
21+
static const kPriorityBoxModel5k = 5000;
2222

2323
final WidgetFactory wf;
2424

@@ -69,7 +69,7 @@ class StylePadding {
6969
];
7070
},
7171
onWidgetsIsOptional: true,
72-
priority: kPriorityBoxModel3k,
72+
priority: kPriorityBoxModel5k,
7373
);
7474

7575
Widget? _build(

0 commit comments

Comments
 (0)