Skip to content

Commit d7bc7a7

Browse files
committed
Improve scrolling
1 parent 24077fe commit d7bc7a7

File tree

2 files changed

+23
-7
lines changed

2 files changed

+23
-7
lines changed

src/view/session.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ use ratatui::layout::Layout;
1313
use ratatui::layout::Rect;
1414
use ratatui::widgets::Block;
1515
use ratatui::widgets::Borders;
16+
use ratatui::widgets::Clear;
1617
use ratatui::Frame;
1718

1819
pub struct SessionView {}
@@ -137,6 +138,7 @@ fn build_pane_widget(frame: &mut Frame, app: &App, pane: &Pane, area: Rect, inde
137138
false => app.theme().pane_border_inactive,
138139
});
139140

141+
frame.render_widget(Clear, area);
140142
frame.render_widget(&block, area);
141143

142144
match pane.component_type {

src/view/source.rs

Lines changed: 21 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -94,17 +94,31 @@ impl View for SourceComponent {
9494
frame.render_widget(Paragraph::new(lines.clone()).scroll((scroll, app.session_view.source_scroll.1)), rows[0]);
9595

9696
for (line_no, line_length, line) in annotations {
97-
let position = Position {
98-
x: (line_length as u16).saturating_sub(app.session_view.source_scroll.1),
97+
let area = Rect {
98+
x: rows[0].x + (line_length as u16).saturating_sub(app.session_view.source_scroll.1),
9999
y: (line_no as u32).saturating_sub(scroll as u32) as u16 + 1,
100+
width: rows[0].width,
101+
height: 1,
100102
};
101-
if !rows[0].contains(position) {
102-
continue;
103+
104+
if !frame.buffer_mut().area().contains(Position{x: area.x, y: area.y}) {
105+
continue
106+
}
107+
if !rows[0].contains(Position{x: area.x, y: area.y}) {
108+
continue
103109
}
104110

105-
frame
106-
.buffer_mut()
107-
.set_line(position.x, position.y, &line, rows[0].width - line_length as u16 + 1);
111+
frame.render_widget(
112+
Paragraph::new(line.clone()).scroll((
113+
0,
114+
if app.session_view.source_scroll.1 > line_length as u16 {
115+
app.session_view.source_scroll.1 - line_length as u16
116+
} else {
117+
0
118+
})
119+
),
120+
area
121+
);
108122
}
109123
}
110124
}

0 commit comments

Comments
 (0)