diff --git a/src/ui/painter.rs b/src/ui/painter.rs index 7f9b420..702e1c8 100644 --- a/src/ui/painter.rs +++ b/src/ui/painter.rs @@ -1,4 +1,5 @@ use log::debug; +use rayon::result; use super::theme::{Theme, ThemedContextExt}; @@ -68,7 +69,7 @@ impl<'a> Painter<'a> { ctx.theme_text(&input, false, &[], &self.theme); } - pub fn result_box(&self, x: T, y: T, result: &'a str, indices: &[usize], selected: bool) + pub fn result_box(&self, x: T, y: T, source: &'a str, result: &'a str, indices: &[usize], selected: bool) where T: Into { let ctx = self.context; @@ -83,7 +84,9 @@ impl<'a> Painter<'a> { // draw text ctx.move_to (x+0.2, y+0.8); - ctx.theme_text(&result, selected, indices, &self.theme) + ctx.theme_text(&source, selected, &[], &self.theme); + ctx.move_to (x+3.5, y+0.8); + ctx.theme_text(&result, selected, indices, &self.theme); } pub fn divider(&self, x: T, y: T) diff --git a/src/ui/ui.rs b/src/ui/ui.rs index 4a7239e..76d096a 100644 --- a/src/ui/ui.rs +++ b/src/ui/ui.rs @@ -86,7 +86,7 @@ pub fn draw(window: &Window, input: &str, result: Vec<(&Entry, Vec)>, sel result.iter().enumerate() .for_each(|(i, r)| { let e = r.0; - painter.result_box(0, 1+(i as u32), &e.name, &r.1, selection==i); + painter.result_box(0, 1+(i as u32), &e.source, &e.name, &r.1, selection==i); }); } @@ -101,14 +101,14 @@ pub fn redraw_quick(window: &Window, result: Vec<(&Entry, Vec)>, selectio .for_each(|(i, r)| { let e = r.0; // clear first and last as these may produce artifacts otherwise - if i == 0 { painter.result_box(0, 1+(i as u32), &e.name, &r.1, false) } - if i == result.len()-1 { painter.result_box(0, 1+(i as u32), &e.name, &r.1, false) } + if i == 0 { painter.result_box(0, 1+(i as u32), &e.source, &e.name, &r.1, false) } + if i == result.len()-1 { painter.result_box(0, 1+(i as u32), &e.source, &e.name, &r.1, false) } // clear boxes around selection as these could be the old selection - if selection > 0 && i == (selection-1) { painter.result_box(0, 1+(i as u32), &e.name, &r.1, false) } - if i == (selection+1) { painter.result_box(0, 1+(i as u32), &e.name, &r.1, false) } + if selection > 0 && i == (selection-1) { painter.result_box(0, 1+(i as u32), &e.source, &e.name, &r.1, false) } + if i == (selection+1) { painter.result_box(0, 1+(i as u32), &e.source, &e.name, &r.1, false) } // mark selection, note that this negates any unmarking above in case they are the same - if i == selection { painter.result_box(0, 1+(i as u32), &e.name, &r.1, true) } + if i == selection { painter.result_box(0, 1+(i as u32), &e.source, &e.name, &r.1, true) } }); }