Skip rendering gutters when gutter width exceeds view width (#7821)

This commit is contained in:
Anshul Dalal 2023-08-08 05:43:10 +05:30 committed by GitHub
parent 7cda5b8592
commit c7e9e94f00
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 20 additions and 11 deletions

View File

@ -163,6 +163,8 @@ pub fn render_view(
Box::new(highlights) Box::new(highlights)
}; };
let gutter_overflow = view.gutter_offset(doc) == 0;
if !gutter_overflow {
Self::render_gutter( Self::render_gutter(
editor, editor,
doc, doc,
@ -172,6 +174,7 @@ pub fn render_view(
is_focused, is_focused,
&mut line_decorations, &mut line_decorations,
); );
}
if is_focused { if is_focused {
let cursor = doc let cursor = doc

View File

@ -187,11 +187,17 @@ pub fn gutters(&self) -> &[GutterType] {
} }
pub fn gutter_offset(&self, doc: &Document) -> u16 { pub fn gutter_offset(&self, doc: &Document) -> u16 {
self.gutters let total_width = self
.gutters
.layout .layout
.iter() .iter()
.map(|gutter| gutter.width(self, doc) as u16) .map(|gutter| gutter.width(self, doc) as u16)
.sum() .sum();
if total_width < self.area.width {
total_width
} else {
0
}
} }
// //