components/mail/view: on draw() set dirty on return
parent
85d4316a6a
commit
1f1ea30769
|
@ -1180,7 +1180,6 @@ impl Component for MailView {
|
||||||
if !self.is_dirty() && !self.force_draw_headers {
|
if !self.is_dirty() && !self.force_draw_headers {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
self.dirty = false;
|
|
||||||
let upper_left = upper_left!(area);
|
let upper_left = upper_left!(area);
|
||||||
let bottom_right = bottom_right!(area);
|
let bottom_right = bottom_right!(area);
|
||||||
|
|
||||||
|
@ -1228,7 +1227,7 @@ impl Component for MailView {
|
||||||
(set_y(upper_left, y), bottom_right),
|
(set_y(upper_left, y), bottom_right),
|
||||||
Some(get_x(upper_left)),
|
Some(get_x(upper_left)),
|
||||||
);
|
);
|
||||||
if let Some(cell) = grid.get_mut(_x,_y) {
|
if let Some(cell) = grid.get_mut(_x, _y) {
|
||||||
cell.set_ch(' ')
|
cell.set_ch(' ')
|
||||||
.set_fg(headers_area.fg)
|
.set_fg(headers_area.fg)
|
||||||
.set_bg(headers_area.bg)
|
.set_bg(headers_area.bg)
|
||||||
|
@ -1241,10 +1240,17 @@ impl Component for MailView {
|
||||||
headers.fg,
|
headers.fg,
|
||||||
headers.bg,
|
headers.bg,
|
||||||
headers.attrs,
|
headers.attrs,
|
||||||
((_x +1, _y), bottom_right),
|
((_x + 1, _y), bottom_right),
|
||||||
Some(get_x(upper_left)),
|
Some(get_x(upper_left)),
|
||||||
);
|
);
|
||||||
clear_area(grid, ((std::cmp::min(_x, get_x(bottom_right)), _y), (get_x(bottom_right), _y)), headers_area);
|
clear_area(
|
||||||
|
grid,
|
||||||
|
(
|
||||||
|
(std::cmp::min(_x, get_x(bottom_right)), _y),
|
||||||
|
(get_x(bottom_right), _y),
|
||||||
|
),
|
||||||
|
headers_area,
|
||||||
|
);
|
||||||
y = _y + 1;
|
y = _y + 1;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
@ -1516,7 +1522,6 @@ impl Component for MailView {
|
||||||
return;
|
return;
|
||||||
};
|
};
|
||||||
self.initialised = true;
|
self.initialised = true;
|
||||||
//let body = AttachmentBuilder::new(bytes).build();
|
|
||||||
match self.mode {
|
match self.mode {
|
||||||
ViewMode::Attachment(aidx) => {
|
ViewMode::Attachment(aidx) => {
|
||||||
let mut text = "Viewing attachment. Press `r` to return \n".to_string();
|
let mut text = "Viewing attachment. Press `r` to return \n".to_string();
|
||||||
|
@ -1642,19 +1647,6 @@ impl Component for MailView {
|
||||||
self.pager.filter(filter);
|
self.pager.filter(filter);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/*
|
|
||||||
ViewMode::Ansi(ref buf) => {
|
|
||||||
write_string_to_grid(
|
|
||||||
&format!("Viewing `{}`. Press `r` to return", buf.title()),
|
|
||||||
grid,
|
|
||||||
Color::Default,
|
|
||||||
Color::Default,
|
|
||||||
Attr::DEFAULT,
|
|
||||||
(set_y(upper_left, y), bottom_right),
|
|
||||||
Some(get_x(upper_left)),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
ViewMode::Url => {
|
ViewMode::Url => {
|
||||||
let mut text = body_text.clone();
|
let mut text = body_text.clone();
|
||||||
if links.is_empty() {
|
if links.is_empty() {
|
||||||
|
@ -1735,10 +1727,6 @@ impl Component for MailView {
|
||||||
s.draw(grid, (set_y(upper_left, y), bottom_right), context);
|
s.draw(grid, (set_y(upper_left, y), bottom_right), context);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/*
|
|
||||||
ViewMode::Ansi(ref mut buf) => {
|
|
||||||
buf.draw(grid, (set_y(upper_left, y + 1), bottom_right), context);
|
|
||||||
}*/
|
|
||||||
_ => {
|
_ => {
|
||||||
self.pager
|
self.pager
|
||||||
.draw(grid, (set_y(upper_left, y), bottom_right), context);
|
.draw(grid, (set_y(upper_left, y), bottom_right), context);
|
||||||
|
@ -1751,6 +1739,8 @@ impl Component for MailView {
|
||||||
if let ForceCharset::Dialog(ref mut s) = self.force_charset {
|
if let ForceCharset::Dialog(ref mut s) = self.force_charset {
|
||||||
s.draw(grid, area, context);
|
s.draw(grid, area, context);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
self.dirty = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
fn process_event(&mut self, mut event: &mut UIEvent, context: &mut Context) -> bool {
|
fn process_event(&mut self, mut event: &mut UIEvent, context: &mut Context) -> bool {
|
||||||
|
|
|
@ -583,7 +583,6 @@ impl ThreadView {
|
||||||
crate::conf::value(context, "theme_default"),
|
crate::conf::value(context, "theme_default"),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
self.dirty = false;
|
|
||||||
context.dirty_areas.push_back(area);
|
context.dirty_areas.push_back(area);
|
||||||
} else {
|
} else {
|
||||||
let old_cursor_pos = self.cursor_pos;
|
let old_cursor_pos = self.cursor_pos;
|
||||||
|
@ -735,6 +734,7 @@ impl ThreadView {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn draw_horz(&mut self, grid: &mut CellBuffer, area: Area, context: &mut Context) {
|
fn draw_horz(&mut self, grid: &mut CellBuffer, area: Area, context: &mut Context) {
|
||||||
let upper_left = upper_left!(area);
|
let upper_left = upper_left!(area);
|
||||||
let bottom_right = bottom_right!(area);
|
let bottom_right = bottom_right!(area);
|
||||||
|
@ -979,11 +979,7 @@ impl Component for ThreadView {
|
||||||
|
|
||||||
if self.entries.len() == 1 {
|
if self.entries.len() == 1 {
|
||||||
self.mailview.draw(grid, area, context);
|
self.mailview.draw(grid, area, context);
|
||||||
self.dirty = false;
|
} else if total_cols >= self.content.size().0 + 74 {
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if total_cols >= self.content.size().0 + 74 {
|
|
||||||
self.draw_vert(grid, area, context);
|
self.draw_vert(grid, area, context);
|
||||||
} else {
|
} else {
|
||||||
self.draw_horz(grid, area, context);
|
self.draw_horz(grid, area, context);
|
||||||
|
@ -1149,13 +1145,16 @@ impl Component for ThreadView {
|
||||||
}
|
}
|
||||||
false
|
false
|
||||||
}
|
}
|
||||||
|
|
||||||
fn is_dirty(&self) -> bool {
|
fn is_dirty(&self) -> bool {
|
||||||
self.dirty || (self.show_mailview && self.mailview.is_dirty())
|
self.dirty || (self.show_mailview && self.mailview.is_dirty())
|
||||||
}
|
}
|
||||||
|
|
||||||
fn set_dirty(&mut self, value: bool) {
|
fn set_dirty(&mut self, value: bool) {
|
||||||
self.dirty = value;
|
self.dirty = value;
|
||||||
self.mailview.set_dirty(value);
|
self.mailview.set_dirty(value);
|
||||||
}
|
}
|
||||||
|
|
||||||
fn get_shortcuts(&self, context: &Context) -> ShortcutMaps {
|
fn get_shortcuts(&self, context: &Context) -> ShortcutMaps {
|
||||||
let mut map = self.mailview.get_shortcuts(context);
|
let mut map = self.mailview.get_shortcuts(context);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue