@@ -677,6 +677,8 @@ impl cosmic::Application for CosmicAppLibrary {
677
677
return commands:: popup:: destroy_popup ( MENU_ID . clone ( ) ) ;
678
678
}
679
679
Message :: SelectAction ( action) => {
680
+ self . menu = None ;
681
+ let mut tasks = vec ! [ commands:: popup:: destroy_popup( MENU_ID . clone( ) ) ] ;
680
682
if let Some ( info) = self . menu . take ( ) . and_then ( |i| self . entry_path_input . get ( i) ) {
681
683
match action {
682
684
MenuAction :: Remove => {
@@ -686,7 +688,7 @@ impl cosmic::Application for CosmicAppLibrary {
686
688
error ! ( "{:?}" , err) ;
687
689
}
688
690
}
689
- return self . filter_apps ( ) ;
691
+ tasks . push ( self . filter_apps ( ) ) ;
690
692
}
691
693
MenuAction :: DesktopAction ( exec) => {
692
694
let mut exec = shlex:: Shlex :: new ( & exec) ;
@@ -708,6 +710,7 @@ impl cosmic::Application for CosmicAppLibrary {
708
710
}
709
711
}
710
712
}
713
+ return cosmic:: Task :: batch ( tasks) ;
711
714
}
712
715
Message :: StartDrag ( i) => {
713
716
self . dnd_icon = Some ( i) ;
@@ -788,6 +791,8 @@ impl cosmic::Application for CosmicAppLibrary {
788
791
{
789
792
self . app_list_config . add_pinned ( pinned_id, & app_list_helper) ;
790
793
}
794
+ self . menu = None ;
795
+ return commands:: popup:: destroy_popup ( MENU_ID . clone ( ) ) ;
791
796
}
792
797
Message :: UnPinFromAppTray ( usize) => {
793
798
let pinned_id = self . entry_path_input . get ( usize) . map ( |e| e. id . clone ( ) ) ;
@@ -797,6 +802,8 @@ impl cosmic::Application for CosmicAppLibrary {
797
802
self . app_list_config
798
803
. remove_pinned ( & pinned_id, & app_list_helper) ;
799
804
}
805
+ self . menu = None ;
806
+ return commands:: popup:: destroy_popup ( MENU_ID . clone ( ) ) ;
800
807
}
801
808
Message :: AppListConfig ( config) => {
802
809
self . app_list_config = config;
0 commit comments