@@ -66,7 +66,7 @@ pub fn handle_update(tile: &mut Tile, message: Message) -> Task<Message> {
6666 } else {
6767 info ! ( "Switching to default mode" ) ;
6868 tile. current_mode = "default" . to_string ( ) ;
69- window :: latest ( ) . map ( |x| Message :: HideWindow ( x . unwrap ( ) ) )
69+ Task :: none ( )
7070 }
7171 }
7272
@@ -557,9 +557,12 @@ pub fn handle_update(tile: &mut Tile, message: Message) -> Task<Message> {
557557 . pick_file ( )
558558 . and_then ( |x| {
559559 x. to_str ( ) . map ( |x| {
560- Task :: done ( Message :: SetConfig ( SetConfigFields :: Modes (
561- Editable :: Create ( ( mode_name, x. to_string ( ) ) ) ,
562- ) ) )
560+ Task :: batch ( [
561+ Task :: done ( Message :: SetConfig ( SetConfigFields :: Modes (
562+ Editable :: Create ( ( mode_name, x. to_string ( ) ) ) ,
563+ ) ) ) ,
564+ Task :: done ( Message :: WriteConfig ( false ) ) ,
565+ ] )
563566 } )
564567 } )
565568 . unwrap_or ( Task :: none ( ) ) ,
@@ -570,9 +573,7 @@ pub fn handle_update(tile: &mut Tile, message: Message) -> Task<Message> {
570573 SetConfigFields :: ToggleHotkey ( hk) => final_config. toggle_hotkey = hk,
571574 SetConfigFields :: ClipboardHotkey ( hk) => final_config. toggle_hotkey = hk,
572575 SetConfigFields :: Modes ( Editable :: Create ( ( key, value) ) ) => {
573- if !final_config. modes . contains_key ( & key) {
574- final_config. modes . insert ( key, value) ;
575- }
576+ final_config. modes . entry ( key) . or_insert ( value) ;
576577 }
577578 SetConfigFields :: Modes ( Editable :: Delete ( ( key, _) ) ) => {
578579 final_config. modes . remove ( & key) ;
@@ -582,9 +583,7 @@ pub fn handle_update(tile: &mut Tile, message: Message) -> Task<Message> {
582583 final_config. modes . insert ( new. 0 , new. 1 ) ;
583584 }
584585 SetConfigFields :: Aliases ( Editable :: Create ( ( key, value) ) ) => {
585- if !final_config. aliases . contains_key ( & key) {
586- final_config. aliases . insert ( key, value) ;
587- }
586+ final_config. aliases . entry ( key) . or_insert ( value) ;
588587 }
589588 SetConfigFields :: Aliases ( Editable :: Delete ( ( key, _) ) ) => {
590589 final_config. aliases . remove ( & key) ;
0 commit comments