Skip to content

Commit 123741f

Browse files
committed
Fix rustcast crashing when arrow key pressed when 0 results are available
1 parent 137256f commit 123741f

File tree

1 file changed

+10
-5
lines changed

1 file changed

+10
-5
lines changed

src/app/tile/update.rs

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -212,12 +212,17 @@ pub fn handle_update(tile: &mut Tile, message: Message) -> Task<Message> {
212212

213213
Message::ChangeFocus(key) => {
214214
let u32_len = tile.results.len() as u32;
215-
match key {
216-
ArrowKey::ArrowDown => tile.focus_id = (tile.focus_id + 1) % u32_len,
217-
ArrowKey::ArrowUp => tile.focus_id = (tile.focus_id + u32_len - 1) % u32_len,
218-
_ => {}
215+
if u32_len > 0 {
216+
match key {
217+
ArrowKey::ArrowDown => tile.focus_id = (tile.focus_id + 1) % u32_len,
218+
ArrowKey::ArrowUp => tile.focus_id = (tile.focus_id + u32_len - 1) % u32_len,
219+
_ => {}
220+
}
221+
222+
operation::focus(format!("result-{}", tile.focus_id))
223+
} else {
224+
Task::none()
219225
}
220-
operation::focus(format!("result-{}", tile.focus_id))
221226
}
222227

223228
Message::OpenFocused => match tile.results.get(tile.focus_id as usize) {

0 commit comments

Comments
 (0)