diff --git a/gpui/src/elements/container.rs b/gpui/src/elements/container.rs index b1efe53288..cdbb6a17b4 100644 --- a/gpui/src/elements/container.rs +++ b/gpui/src/elements/container.rs @@ -53,6 +53,11 @@ impl Container { self } + pub fn with_padding_bottom(mut self, padding: f32) -> Self { + self.padding.bottom = padding; + self + } + pub fn with_background_color(mut self, color: impl Into) -> Self { self.background_color = Some(color.into()); self diff --git a/gpui/src/elements/line_box.rs b/gpui/src/elements/line_box.rs index 599a0a830d..88dde36df8 100644 --- a/gpui/src/elements/line_box.rs +++ b/gpui/src/elements/line_box.rs @@ -38,7 +38,11 @@ impl Element for LineBox { .select_font(self.family_id, &self.font_properties) { Ok(font_id) => { - let line_height = ctx.font_cache.bounding_box(font_id, self.font_size).y(); + let line_height = ctx + .font_cache + .bounding_box(font_id, self.font_size) + .y() + .ceil(); let child_max = vec2f( constraint.max.x(), ctx.font_cache.ascent(font_id, self.font_size) diff --git a/zed/src/workspace/pane.rs b/zed/src/workspace/pane.rs index 2b248e4505..c900340a04 100644 --- a/zed/src/workspace/pane.rs +++ b/zed/src/workspace/pane.rs @@ -187,19 +187,20 @@ impl Pane { border.right = ix == last_item_ix; border.bottom = ix != self.active_item; + let padding = 6.; let mut container = Container::new( Align::new( Label::new(title, settings.ui_font_family, settings.ui_font_size).boxed(), ) .boxed(), ) - .with_uniform_padding(6.0) + .with_uniform_padding(padding) .with_border(border); if ix == self.active_item { container = container .with_background_color(ColorU::white()) - .with_overdraw_bottom(1.5); + .with_padding_bottom(padding + border.width); } else { container = container.with_background_color(ColorU::from_u32(0xeaeaebff)); }