diff --git a/crates/editor/src/editor.rs b/crates/editor/src/editor.rs index 74b499bbd6..1b28a229ee 100644 --- a/crates/editor/src/editor.rs +++ b/crates/editor/src/editor.rs @@ -11082,7 +11082,7 @@ impl Render for Editor { background, local_player: cx.theme().players().local(), text: text_style, - scrollbar_width: px(13.), + scrollbar_width: EditorElement::SCROLLBAR_WIDTH, syntax: cx.theme().syntax().clone(), status: cx.theme().status().clone(), inlay_hints_style: HighlightStyle { diff --git a/crates/editor/src/element.rs b/crates/editor/src/element.rs index 66a46425dc..c414216f85 100644 --- a/crates/editor/src/element.rs +++ b/crates/editor/src/element.rs @@ -136,6 +136,8 @@ pub struct EditorElement { type DisplayRowDelta = u32; impl EditorElement { + pub(crate) const SCROLLBAR_WIDTH: Pixels = px(13.); + pub fn new(editor: &View, style: EditorStyle) -> Self { Self { editor: editor.clone(), @@ -3763,7 +3765,13 @@ impl Element for EditorElement { cx, ); let text_width = bounds.size.width - gutter_dimensions.width; - let overscroll = size(em_width, px(0.)); + + let right_margin = if snapshot.mode == EditorMode::Full { + EditorElement::SCROLLBAR_WIDTH + } else { + px(0.) + }; + let overscroll = size(em_width + right_margin, px(0.)); snapshot = self.editor.update(cx, |editor, cx| { editor.last_bounds = Some(bounds);