about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorbptato <nincsnevem662@gmail.com>2024-12-19 20:01:18 +0100
committerbptato <nincsnevem662@gmail.com>2024-12-19 20:01:18 +0100
commit238a9a7f13eb51dca8ca66e9ec6e3b43a3950642 (patch)
tree5d2aedc7d4c681fb0132b292ef20ae1de71612d1
parent3cc7d7e6cf131d9fda392f3ace5075a0d9ee672c (diff)
downloadchawan-238a9a7f13eb51dca8ca66e9ec6e3b43a3950642.tar.gz
layout: apply padding to intrinsic minimum width
-rw-r--r--src/css/layout.nim7
-rw-r--r--test/layout/padding-counted-for-intrinisc-min-width.color.expected2
-rw-r--r--test/layout/padding-counted-for-intrinisc-min-width.html3
3 files changed, 8 insertions, 4 deletions
diff --git a/src/css/layout.nim b/src/css/layout.nim
index 82f5b248..2316c23c 100644
--- a/src/css/layout.nim
+++ b/src/css/layout.nim
@@ -1258,10 +1258,9 @@ proc applyHeight(box: BlockBox; sizes: ResolvedSizes;
   box.applySize(sizes, maxChildHeight, sizes.space, dtVertical)
 
 proc applyPadding(box: BlockBox; padding: RelativeRect) =
-  box.state.size.w += padding[dtHorizontal].sum()
-  let verticalSum = padding[dtVertical].sum()
-  box.state.size.h += verticalSum
-  box.state.intr.h += verticalSum
+  let sum = padding.sum()
+  box.state.size += sum
+  box.state.intr += sum
 
 proc applyBaseline(box: BlockBox) =
   if box.children.len > 0:
diff --git a/test/layout/padding-counted-for-intrinisc-min-width.color.expected b/test/layout/padding-counted-for-intrinisc-min-width.color.expected
new file mode 100644
index 00000000..7252c405
--- /dev/null
+++ b/test/layout/padding-counted-for-intrinisc-min-width.color.expected
@@ -0,0 +1,2 @@
+ a  test
+
diff --git a/test/layout/padding-counted-for-intrinisc-min-width.html b/test/layout/padding-counted-for-intrinisc-min-width.html
new file mode 100644
index 00000000..95605842
--- /dev/null
+++ b/test/layout/padding-counted-for-intrinisc-min-width.html
@@ -0,0 +1,3 @@
+<table style="padding: 0; width: 5ch">
+<td><div style="padding: 0 1ch; background: red">a</div></td>
+<td>test</td>