crossterm
crossterm copied to clipboard
Event::Mouse doesn't capture modifiers in zellij
Describe the bug If I'm in a session of zellij, hold shift and create some mouse-events, my shift key doesn't get registered.
To Reproduce Steps to reproduce the behavior:
- Install
zellij. (latest version: 0.39.2) - create a session (just execute
zellij) - create a new project (
cargo init demo && cd demo) cargo add crossterm- Now add the following code to
main.rs:
//! Demonstrates how to block read events.
//!
//! cargo run --example event-read
use std::io;
use crossterm::event::{
KeyboardEnhancementFlags, PopKeyboardEnhancementFlags, PushKeyboardEnhancementFlags,
};
use crossterm::{
event::{
read, DisableBracketedPaste, DisableFocusChange, DisableMouseCapture, EnableBracketedPaste,
EnableFocusChange, EnableMouseCapture, Event, KeyCode,
},
execute, queue,
terminal::{disable_raw_mode, enable_raw_mode},
};
fn print_events() -> io::Result<()> {
loop {
let event = read()?;
if let Event::Mouse(event) = event {
println!("{:?}", event.modifiers);
}
if event == Event::Key(KeyCode::Esc.into()) {
break;
}
}
Ok(())
}
fn main() -> io::Result<()> {
enable_raw_mode()?;
let mut stdout = io::stdout();
let supports_keyboard_enhancement = matches!(
crossterm::terminal::supports_keyboard_enhancement(),
Ok(true)
);
if supports_keyboard_enhancement {
queue!(
stdout,
PushKeyboardEnhancementFlags(KeyboardEnhancementFlags::all())
)?;
}
execute!(
stdout,
EnableBracketedPaste,
EnableFocusChange,
EnableMouseCapture,
)?;
if let Err(e) = print_events() {
println!("Error: {:?}\r", e);
}
if supports_keyboard_enhancement {
queue!(stdout, PopKeyboardEnhancementFlags)?;
}
execute!(
stdout,
DisableBracketedPaste,
PopKeyboardEnhancementFlags,
DisableFocusChange,
DisableMouseCapture
)?;
disable_raw_mode()
}
The output I'm getting:
KeyModifiers(0x0)
KeyModifiers(0x0)
KeyModifiers(0x0)
KeyModifiers(0x0)
KeyModifiers(0x0)
KeyModifiers(0x0)
KeyModifiers(0x0)
KeyModifiers(0x0)
KeyModifiers(0x0)
KeyModifiers(0x0)
Expected behavior The following output:
KeyModifiers(SHIFT)
KeyModifiers(SHIFT)
KeyModifiers(SHIFT)
KeyModifiers(SHIFT)
KeyModifiers(SHIFT)
KeyModifiers(SHIFT)
KeyModifiers(SHIFT)
OS NixOS
Terminal/Console
hm... maybe I need to report this to zellij and not here.