notedeck

One damus client to rule them all
git clone git://jb55.com/notedeck
Log | Files | Refs | README | LICENSE

commit dbb427c946cc7c431866a2558ac39e6314fa22b7
parent 436214415c2907d681702635370b0d638f8bca24
Author: William Casarin <jb55@jb55.com>
Date:   Tue, 27 Jan 2026 13:42:51 -0800

dave: fix Ctrl+Shift+Tab keybinding order

Check Ctrl+Shift+Tab before Ctrl+Tab because egui's consume_key uses
matches_logically which ignores extra Shift modifier. This was causing
Ctrl+Shift+Tab to be consumed by the Ctrl+Tab handler.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

Diffstat:
Mcrates/notedeck_dave/src/ui/keybindings.rs | 8+++++---
1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/crates/notedeck_dave/src/ui/keybindings.rs b/crates/notedeck_dave/src/ui/keybindings.rs @@ -60,11 +60,13 @@ pub fn check_keybindings( // Ctrl+Tab / Ctrl+Shift+Tab for cycling through agents // Works even with text input focus since Ctrl modifier makes it unambiguous + // IMPORTANT: Check Ctrl+Shift+Tab first because consume_key uses matches_logically + // which ignores extra Shift, so Ctrl+Tab would consume Ctrl+Shift+Tab otherwise if let Some(action) = ctx.input_mut(|i| { - if i.consume_key(ctrl, Key::Tab) { - Some(KeyAction::NextAgent) - } else if i.consume_key(ctrl_shift, Key::Tab) { + if i.consume_key(ctrl_shift, Key::Tab) { Some(KeyAction::PreviousAgent) + } else if i.consume_key(ctrl, Key::Tab) { + Some(KeyAction::NextAgent) } else { None }