@@ -176,7 +176,8 @@ def _set_actions(self):
176
176
('expand_all_tasks' , self .on_expand_all_tasks , None ),
177
177
('change_tags' , self .on_modify_tags , ('win.change_tags' , ['<ctrl>T' ])),
178
178
('focus_sidebar' , self .focus_sidebar , ('win.focus_sidebar' , ['<ctrl>B' ])),
179
- ('search' , self .toggle_search , ('win.search' , ['<ctrl>F' ])),
179
+ ('toggle_search' , self .toggle_search , None ),
180
+ ('focus_search' , self .focus_search , ('win.focus_search' , ['<ctrl>F' ])),
180
181
('focus_quickentry' , self .focus_quickentry , ('win.focus_quickentry' , ['<ctrl>L' ])),
181
182
('delete_task' , self .on_delete_tasks , ('win.delete_task' , ['<ctrl>Delete' ])),
182
183
('help_overlay' , None , ('win.show-help-overlay' , ['<ctrl>question' ])),
@@ -456,21 +457,31 @@ def _init_signal_connections(self):
456
457
457
458
# HELPER FUNCTIONS ##########################################################
458
459
460
+ def focus_search (self , action , param ):
461
+ """Callback to focus search entry"""
462
+
463
+ if self .searchbar .get_search_mode ():
464
+ if self .search_entry .has_focus ():
465
+ self ._set_searchbar_visibility (False )
466
+ else :
467
+ self .search_entry .grab_focus ()
468
+ else :
469
+ self ._set_searchbar_visibility (True )
470
+
459
471
def toggle_search (self , action , param ):
460
472
"""Callback to toggle search bar."""
461
473
462
- self .on_search_toggled ( )
474
+ self ._set_searchbar_visibility ( not self . searchbar . get_search_mode () )
463
475
464
- def on_search_toggled (self , widget = None ):
465
- if self .searchbar .get_search_mode ():
466
- self .search_button .set_active (False )
467
- self .searchbar .set_search_mode (False )
468
- self .search_entry .set_text ('' )
469
- self .get_selected_tree ().unapply_filter (SEARCH_TAG )
470
- else :
476
+ def _set_searchbar_visibility (self , visible : bool ):
477
+ if visible :
471
478
self .search_button .set_active (True )
472
479
self .searchbar .set_search_mode (True )
473
480
self .search_entry .grab_focus ()
481
+ else :
482
+ self .search_button .set_active (False )
483
+ self .searchbar .set_search_mode (False )
484
+ self .get_selected_tree ().unapply_filter (SEARCH_TAG )
474
485
475
486
def _try_filter_by_query (self , query , refresh : bool = True ):
476
487
log .debug ("Searching for %r" , query )
0 commit comments