Better keybindings in opener

This commit is contained in:
Joshua Barretto 2025-10-31 00:43:44 +00:00
parent dac1dfdb4a
commit 0f97ee706f
2 changed files with 10 additions and 4 deletions

View file

@ -292,7 +292,8 @@ impl Input {
.text([1, 0], &format!("{:>line_num_w$}", line_num + 1)),
};
let line_selected = buffer.text.to_coord(cursor.pos)[1] == line_num as isize;
let line_highlight_selected = matches!(self.mode, Mode::Doc)
&& buffer.text.to_coord(cursor.pos)[1] == line_num as isize;
// Line
{
@ -334,7 +335,7 @@ impl Input {
}
} else if let Some(hl_bg) = hl_bg {
hl_bg
} else if line_selected && frame.has_focus() {
} else if line_highlight_selected && frame.has_focus() {
state.theme.line_select_bg
} else {
Color::Reset

View file

@ -187,7 +187,12 @@ impl<T> Options<T> {
impl<T: Clone> Element<T> for Options<T> {
fn handle(&mut self, state: &mut State, event: Event) -> Result<Resp<T>, Event> {
match event.to_action(|e| e.to_go().or_else(|| e.to_move())) {
Some(Action::Move(dir, dist @ (Dist::Char | Dist::Doc), false, false)) => {
Some(Action::Move(
dir @ (Dir::Up | Dir::Down),
dist @ (Dist::Char | Dist::Doc),
false,
false,
)) => {
self.scroll(dir, dist);
Ok(Resp::handled(None))
}
@ -200,7 +205,7 @@ impl<T: Clone> Element<T> for Options<T> {
}
Ok(Resp::handled(None))
}
Some(Action::Mouse(MouseAction::Scroll(dir), pos, _, _))
Some(Action::Mouse(MouseAction::Scroll(dir @ (Dir::Up | Dir::Down)), pos, _, _))
if self.last_area.contains(pos).is_some() =>
{
if let Some(pos) = self.last_area.contains(pos) {