summaryrefslogtreecommitdiffstats
path: root/ui/src/components/mail/view
diff options
context:
space:
mode:
authorManos Pitsidianakis <el13635@mail.ntua.gr>2019-06-06 00:27:40 +0300
committerManos Pitsidianakis <el13635@mail.ntua.gr>2019-06-10 19:40:51 +0300
commitb6c0236d24a6252aad0e6f14b5a5f41052ed854d (patch)
treef14408b0c2fd4a52539f89808da2248085b952ec /ui/src/components/mail/view
parent85d1aaaa69f4b37343998088f89f306c83af117f (diff)
ui: make EnvelopeRename event not folder specific
And pass EnvelopeRename events to subviews
Diffstat (limited to 'ui/src/components/mail/view')
-rw-r--r--ui/src/components/mail/view/thread.rs21
1 files changed, 16 insertions, 5 deletions
diff --git a/ui/src/components/mail/view/thread.rs b/ui/src/components/mail/view/thread.rs
index 4b8be368..7b1fca8c 100644
--- a/ui/src/components/mail/view/thread.rs
+++ b/ui/src/components/mail/view/thread.rs
@@ -291,8 +291,7 @@ impl ThreadView {
/* Box character drawing stuff */
let mut x = 0;
for i in 0..e.index.0 {
- let color =
- INDENTATION_COLORS[(i).wrapping_rem(INDENTATION_COLORS.len())];
+ let color = INDENTATION_COLORS[(i).wrapping_rem(INDENTATION_COLORS.len())];
change_colors(
&mut content,
((x, 2 * y), (x + 3, 2 * y + 1)),
@@ -408,6 +407,7 @@ impl ThreadView {
/// draw the list
fn draw_list(&mut self, grid: &mut CellBuffer, area: Area, context: &mut Context) {
+ /* Make space on the left for the scrollbar */
let mut upper_left = pos_inc(upper_left!(area), (1, 0));
let bottom_right = bottom_right!(area);
let (width, height) = self.content.size();
@@ -613,9 +613,11 @@ impl ThreadView {
let i = if let Some(i) = thread_node.message() {
i
} else {
- threads.thread_nodes()[&thread_node.children()[0]]
- .message()
- .unwrap()
+ let mut iter_ptr = thread_node.children()[0];
+ while threads.thread_nodes()[&iter_ptr].message().is_none() {
+ iter_ptr = threads.thread_nodes()[&iter_ptr].children()[0];
+ }
+ threads.thread_nodes()[&iter_ptr].message().unwrap()
};
let envelope: &Envelope = account.get_env(&i);
@@ -1013,6 +1015,15 @@ impl Component for ThreadView {
UIEvent::Resize => {
self.set_dirty();
}
+ UIEvent::EnvelopeRename(ref old_hash, ref new_hash) => {
+ for e in self.entries.iter_mut() {
+ if e.msg_hash == *old_hash {
+ e.msg_hash = *new_hash;
+ }
+ }
+ self.mailview
+ .process_event(&mut UIEvent::EnvelopeRename(*old_hash, *new_hash), context);
+ }
_ => {
if self.mailview.process_event(event, context) {
return true;