pub struct Combiner { /* private fields */ }
Expand description
Consumes key events and combines them into key combinations.
See the print_key_events example.
Implementations§
source§impl Combiner
impl Combiner
sourcepub fn enable_combining(&mut self) -> Result<bool>
pub fn enable_combining(&mut self) -> Result<bool>
Try to enable combining more than one non-modifier key into a combination.
Return Ok(false) when the terminal doesn’t support the kitty protocol.
Behind the scene, this function pushes the keyboard enhancement flags to the terminal. The flags are popped, and the normal state of the terminal restored, when the Combiner is dropped.
This function does nothing if combining is already enabled.
sourcepub fn disable_combining(&mut self) -> Result<()>
pub fn disable_combining(&mut self) -> Result<()>
Disable combining.
sourcepub fn set_keyboard_enhancement_flags_externally_managed(&mut self)
pub fn set_keyboard_enhancement_flags_externally_managed(&mut self)
Tell the Combiner not to push/pop the keyboard enhancement flags.
Call before enable_combining if you want to manage the flags yourself. (for example: if you need to use stderr instead of stdout in crossterm::execute!)
pub fn is_combining(&self) -> bool
sourcepub fn set_mandate_modifier_for_multiple_keys(&mut self, mandate: bool)
pub fn set_mandate_modifier_for_multiple_keys(&mut self, mandate: bool)
When combining is enabled, you may either want “simple” keys (i.e. without modifier or space) to be handled on key press, or to wait for a key release so that maybe they may be part of a combination like ‘a-b’. If combinations without modifier or space are unlikely in your application, you may make it feel snappier by setting this to true.
This setting has no effect when combining isn’t enabled.
sourcepub fn transform(&mut self, key: KeyEvent) -> Option<KeyCombination>
pub fn transform(&mut self, key: KeyEvent) -> Option<KeyCombination>
Receive a key event and return a key combination if one is ready.
When combining is enabled, the key combination is only returned on a key release event.