Skip rendering gutters when gutter width exceeds view width (#7821)
This commit is contained in:
parent
7cda5b8592
commit
c7e9e94f00
2 changed files with 20 additions and 11 deletions
|
@ -163,15 +163,18 @@ impl EditorView {
|
|||
Box::new(highlights)
|
||||
};
|
||||
|
||||
Self::render_gutter(
|
||||
editor,
|
||||
doc,
|
||||
view,
|
||||
view.area,
|
||||
theme,
|
||||
is_focused,
|
||||
&mut line_decorations,
|
||||
);
|
||||
let gutter_overflow = view.gutter_offset(doc) == 0;
|
||||
if !gutter_overflow {
|
||||
Self::render_gutter(
|
||||
editor,
|
||||
doc,
|
||||
view,
|
||||
view.area,
|
||||
theme,
|
||||
is_focused,
|
||||
&mut line_decorations,
|
||||
);
|
||||
}
|
||||
|
||||
if is_focused {
|
||||
let cursor = doc
|
||||
|
|
|
@ -187,11 +187,17 @@ impl View {
|
|||
}
|
||||
|
||||
pub fn gutter_offset(&self, doc: &Document) -> u16 {
|
||||
self.gutters
|
||||
let total_width = self
|
||||
.gutters
|
||||
.layout
|
||||
.iter()
|
||||
.map(|gutter| gutter.width(self, doc) as u16)
|
||||
.sum()
|
||||
.sum();
|
||||
if total_width < self.area.width {
|
||||
total_width
|
||||
} else {
|
||||
0
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
|
|
Loading…
Add table
Reference in a new issue