URI: 
       Fixed keybind serialization issue - icy_draw - icy_draw is the successor to mystic draw. fork / mirror
  HTML git clone https://git.drkhsh.at/icy_draw.git
   DIR Log
   DIR Files
   DIR Refs
   DIR README
       ---
   DIR commit 50a0451739b282b158ebcd3266a39cdb89166e44
   DIR parent 3e7bdf697d5c77201a17634edffcbd3ecbb00bb8
  HTML Author: Mike Krüger <mikkrg@microsoft.com>
       Date:   Thu,  2 May 2024 03:36:09 +0200
       
       Fixed keybind serialization issue
       
       Fixes #6
       
       Diffstat:
         M crates/icy_term/src/data/options.rs |      23 +++++++++++++++--------
       
       1 file changed, 15 insertions(+), 8 deletions(-)
       ---
   DIR diff --git a/crates/icy_term/src/data/options.rs b/crates/icy_term/src/data/options.rs
       @@ -124,13 +124,15 @@ fn parse_key_binding(str: impl Into<String>) -> KeyType {
                return None;
            }
            let key = parse_key(parts[0]);
       -    if parts[1] == "Alt" {
       -        Some((KeyOrPointer::Key(key), Modifiers::ALT))
       -    } else if parts[1] == "None" {
       -        Some((KeyOrPointer::Key(key), Modifiers::NONE))
       -    } else {
       -        None
       -    }
       +    let m = Modifiers {
       +        alt: parts[1].contains("Alt"),
       +        ctrl: parts[1].contains("Ctrl"),
       +        shift: parts[1].contains("Shift"),
       +        mac_cmd:  parts[1].contains("Command"),
       +        command: parts[1].contains("Ctrl") | parts[1].contains("Command"),
       +    };
       +    Some((KeyOrPointer::Key(key), m))
       +
        }
        
        // Generated from "egui::Key::name()"
       @@ -219,7 +221,12 @@ fn convert_to_string(key: KeyType) -> String {
            match key {
                Some((key, modifier)) => {
                    if let KeyOrPointer::Key(key) = key {
       -                let m = if modifier.alt { "Alt" } else { "None" };
       +                let m = format!("{}{}{}{}",
       +                    if modifier.command { "Command" } else { "" },
       +                    if modifier.ctrl { "Ctrl" } else { "" },
       +                    if modifier.alt { "Alt" } else { "" },
       +                    if modifier.shift { "Shift" } else { "" }
       +                );
                        format!("{}|{}", key.name(), m)
                    } else {
                        "None".to_string()