File tree Expand file tree Collapse file tree 2 files changed +14
-1
lines changed
Expand file tree Collapse file tree 2 files changed +14
-1
lines changed Original file line number Diff line number Diff line change @@ -31,6 +31,7 @@ pub enum Message {
3131 KeyPressed ( u32 ) ,
3232 HideWindow ( Id ) ,
3333 RunFunction ( Function ) ,
34+ ReturnFocus ,
3435 ClearSearchResults ,
3536 WindowFocusChanged ( Id , bool ) ,
3637 ClearSearchQuery ,
Original file line number Diff line number Diff line change @@ -154,6 +154,7 @@ pub fn handle_update(tile: &mut Tile, message: Message) -> Task<Message> {
154154 } else {
155155 Message :: _Nothing
156156 } ) ,
157+ Task :: done ( Message :: ReturnFocus ) ,
157158 ] )
158159 }
159160 } else {
@@ -164,23 +165,34 @@ pub fn handle_update(tile: &mut Tile, message: Message) -> Task<Message> {
164165 Message :: RunFunction ( command) => {
165166 command. execute ( & tile. config , & tile. query ) ;
166167
168+ let return_focus_task = match & command {
169+ Function :: OpenApp ( _) | Function :: OpenPrefPane | Function :: GoogleSearch ( _) => Task :: none ( ) ,
170+ _ => Task :: done ( Message :: ReturnFocus ) ,
171+ } ;
172+
167173 if tile. config . buffer_rules . clear_on_enter {
168174 window:: latest ( )
169175 . map ( |x| x. unwrap ( ) )
170176 . map ( Message :: HideWindow )
171177 . chain ( Task :: done ( Message :: ClearSearchQuery ) )
178+ . chain ( return_focus_task)
172179 } else {
173180 Task :: none ( )
174181 }
175182 }
176183
177184 Message :: HideWindow ( a) => {
178- tile. restore_frontmost ( ) ;
179185 tile. visible = false ;
180186 tile. focused = false ;
181187 tile. page = Page :: Main ;
182188 Task :: batch ( [ window:: close ( a) , Task :: done ( Message :: ClearSearchResults ) ] )
183189 }
190+
191+ Message :: ReturnFocus => {
192+ tile. restore_frontmost ( ) ;
193+ Task :: none ( )
194+ }
195+
184196 Message :: ClearSearchResults => {
185197 tile. results = vec ! [ ] ;
186198 Task :: none ( )
You can’t perform that action at this time.
0 commit comments