Don't hide last symbol under the scrollbar (#11696)

This PR adds an extra scrollbar-wide margin to the right side of the
editor. This prevents hiding the last character under the scrollbar.

Fixes #7098

Release Notes:

- Fixed hiding of the last character under the scrollbar (#7098).
This commit is contained in:
Andrew Lygin 2024-05-12 22:04:20 +03:00 committed by GitHub
parent 4446c38705
commit 9fdfe5c813
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 10 additions and 2 deletions

View File

@ -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 {

View File

@ -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<Editor>, 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);