diff --git a/gpui/src/elements/container.rs b/gpui/src/elements/container.rs index c387cb8e9dbfb8c500d35f53e4b3619e179eb812..13a80848c410679305ada2a0429118ff8f7ac1ef 100644 --- a/gpui/src/elements/container.rs +++ b/gpui/src/elements/container.rs @@ -168,7 +168,9 @@ impl Element for Container { corner_radius: self.corner_radius, }); - let child_origin = quad_bounds.origin() + vec2f(self.padding.left, self.padding.top); + let child_origin = quad_bounds.origin() + + vec2f(self.padding.left, self.padding.top) + + vec2f(self.border.left_width(), self.border.top_width()); self.child.paint(child_origin, ctx); } diff --git a/gpui/src/scene.rs b/gpui/src/scene.rs index 7d9457c8d95a91379a7c07d1356455084dab905b..ee504c019b24ab491e70ad53260114acdd5d7acb 100644 --- a/gpui/src/scene.rs +++ b/gpui/src/scene.rs @@ -222,4 +222,20 @@ impl Border { fn all_sides(&self) -> bool { self.top && self.left && self.bottom && self.right } + + pub fn top_width(&self) -> f32 { + if self.top { + self.width + } else { + 0.0 + } + } + + pub fn left_width(&self) -> f32 { + if self.left { + self.width + } else { + 0.0 + } + } }