mail/view/thread: fix scrollbar incorrect rendering

jmap-eventsource
Manos Pitsidianakis 2020-11-28 20:23:39 +02:00
parent d076ff573f
commit d8c978ed2d
Signed by: Manos Pitsidianakis
GPG Key ID: 73627C2F690DF710
1 changed files with 10 additions and 16 deletions

View File

@ -572,23 +572,20 @@ impl ThreadView {
self.highlight_line(grid, dest_area, src_area, idx, context); self.highlight_line(grid, dest_area, src_area, idx, context);
if rows < visibles.len() { if rows < visibles.len() {
ScrollBar::default().draw( ScrollBar::default().set_show_arrows(true).draw(
grid, grid,
( (pos_inc(upper_left!(area), (width!(area), 0)), bottom_right),
upper_left!(area),
set_x(bottom_right, get_x(upper_left!(area)) + 1),
),
context, context,
self.cursor_pos, 2 * self.cursor_pos,
rows, rows,
visibles.len(), 2 * visibles.len() + 1,
); );
} }
if top_idx + rows > visibles.len() { if 2 * top_idx + rows > 2 * visibles.len() + 1 {
clear_area( clear_area(
grid, grid,
( (
pos_inc(upper_left, (0, 2 * (visibles.len() - top_idx))), pos_inc(upper_left, (0, 2 * (visibles.len() - top_idx) + 1)),
bottom_right, bottom_right,
), ),
crate::conf::value(context, "theme_default"), crate::conf::value(context, "theme_default"),
@ -632,16 +629,13 @@ impl ThreadView {
self.highlight_line(grid, dest_area, src_area, entry_idx, context); self.highlight_line(grid, dest_area, src_area, entry_idx, context);
if rows < visibles.len() { if rows < visibles.len() {
ScrollBar::default().draw( ScrollBar::default().set_show_arrows(true).draw(
grid, grid,
( (pos_inc(upper_left!(area), (width!(area), 0)), bottom_right),
upper_left!(area),
set_x(bottom_right, get_x(upper_left!(area)) + 1),
),
context, context,
self.cursor_pos, 2 * self.cursor_pos,
rows, rows,
visibles.len(), 2 * visibles.len() + 1,
); );
context.dirty_areas.push_back(( context.dirty_areas.push_back((
upper_left!(area), upper_left!(area),