launcher: Show and return failed match strings
This commit is contained in:
+46
-32
@@ -67,40 +67,51 @@ impl ModuleImpl for Launcher {
|
|||||||
|
|
||||||
let mut x_off: i32 = 0;
|
let mut x_off: i32 = 0;
|
||||||
let mut width_remaining: i32 = 1280 - 64;
|
let mut width_remaining: i32 = 1280 - 64;
|
||||||
for (idx, m) in self.matches.iter().enumerate() {
|
if self.matches.len() == 0 && self.cur.len() > 0 {
|
||||||
let mut b = match buf.subdimensions((64 + x_off as u32, 0, width_remaining as u32, 32))
|
draw_text(
|
||||||
{
|
ROBOTO_REGULAR,
|
||||||
Ok(b) => b,
|
&mut buf.subdimensions((64, 0, width_remaining as u32, 32)).unwrap(),
|
||||||
Err(_) => break,
|
bg,
|
||||||
};
|
&Color::new(1.0, 0.5, 0.5, 1.0),
|
||||||
let size = if idx == self.offset && self.cur.len() > 0 {
|
32.0,
|
||||||
let l = self.cur.len();
|
&self.cur,
|
||||||
let off = m.to_lowercase().find(&self.cur.to_lowercase()).unwrap();
|
)?;
|
||||||
let mut colors = Vec::with_capacity(m.len());
|
} else {
|
||||||
for pos in 0..m.len() {
|
for (idx, m) in self.matches.iter().enumerate() {
|
||||||
if pos >= off && pos < off + l {
|
let mut b =
|
||||||
colors.push(Color::new(1.0, 1.0, 1.0, 1.0));
|
match buf.subdimensions((64 + x_off as u32, 0, width_remaining as u32, 32)) {
|
||||||
} else {
|
Ok(b) => b,
|
||||||
colors.push(Color::new(0.75, 0.75, 0.75, 1.0));
|
Err(_) => break,
|
||||||
|
};
|
||||||
|
let size = if idx == self.offset && self.cur.len() > 0 {
|
||||||
|
let l = self.cur.len();
|
||||||
|
let off = m.to_lowercase().find(&self.cur.to_lowercase()).unwrap();
|
||||||
|
let mut colors = Vec::with_capacity(m.len());
|
||||||
|
for pos in 0..m.len() {
|
||||||
|
if pos >= off && pos < off + l {
|
||||||
|
colors.push(Color::new(1.0, 1.0, 1.0, 1.0));
|
||||||
|
} else {
|
||||||
|
colors.push(Color::new(0.75, 0.75, 0.75, 1.0));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
draw_text_individual_colors(ROBOTO_REGULAR, &mut b, bg, &colors, 32.0, &m)?
|
||||||
|
} else {
|
||||||
|
draw_text(
|
||||||
|
ROBOTO_REGULAR,
|
||||||
|
&mut b,
|
||||||
|
bg,
|
||||||
|
&Color::new(0.5, 0.5, 0.5, 1.0),
|
||||||
|
32.0,
|
||||||
|
m,
|
||||||
|
)?
|
||||||
|
};
|
||||||
|
|
||||||
|
x_off += (size.0 + 8) as i32;
|
||||||
|
width_remaining -= (size.0 + 8) as i32;
|
||||||
|
|
||||||
|
if width_remaining < 0 {
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
draw_text_individual_colors(ROBOTO_REGULAR, &mut b, bg, &colors, 32.0, &m)?
|
|
||||||
} else {
|
|
||||||
draw_text(
|
|
||||||
ROBOTO_REGULAR,
|
|
||||||
&mut b,
|
|
||||||
bg,
|
|
||||||
&Color::new(0.5, 0.5, 0.5, 1.0),
|
|
||||||
32.0,
|
|
||||||
m,
|
|
||||||
)?
|
|
||||||
};
|
|
||||||
|
|
||||||
x_off += (size.0 + 8) as i32;
|
|
||||||
width_remaining -= (size.0 + 8) as i32;
|
|
||||||
|
|
||||||
if width_remaining < 0 {
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -153,6 +164,9 @@ impl ModuleImpl for Launcher {
|
|||||||
if self.matches.len() > self.offset {
|
if self.matches.len() > self.offset {
|
||||||
println!("{}", self.matches[self.offset]);
|
println!("{}", self.matches[self.offset]);
|
||||||
std::process::exit(0);
|
std::process::exit(0);
|
||||||
|
} else {
|
||||||
|
println!("{}", self.cur);
|
||||||
|
std::process::exit(0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
keysyms::XKB_KEY_Right => {
|
keysyms::XKB_KEY_Right => {
|
||||||
|
|||||||
Reference in New Issue
Block a user