@@ -34,8 +34,8 @@ def __init__(self):
3434
3535 self .app_url = 'https://devdocs.io'
3636 self .search = self .args .parse_args ().s .strip ()
37- self .open_link = False
3837 self .filter = ''
38+ self .open_link = False
3939 self .options = self .read_settings_json ('cookies' )
4040 self .prefs = self .read_settings_json ('prefs' )
4141 self .globals = Gtk .Settings .get_default ()
@@ -263,6 +263,16 @@ def on_zoom_reset_accel_pressed(self, _group, _widget, _code, _modifier):
263263 def on_window_main_destroy (self , _event ):
264264 self .quit ()
265265
266+ def on_window_main_key_press_event (self , _widget , event ):
267+ kname = Gdk .keyval_name (event .keyval )
268+ search = self .header_sbox .get_visible ()
269+
270+ if kname == 'Tab' and bool (self .search ) and search :
271+ self .js_keyboard_event ('._search' , 9 )
272+ self .sync_header_search ()
273+
274+ return True
275+
266276 def on_window_main_key_release_event (self , _widget , event ):
267277 kname = Gdk .keyval_name (event .keyval )
268278 search = self .header_sbox .get_visible ()
@@ -277,37 +287,29 @@ def on_window_main_key_release_event(self, _widget, event):
277287 self .on_window_main_search_key_release_event (kname , event )
278288
279289 def on_window_main_search_key_release_event (self , kname , event ):
280- focus = self .header_search .has_focus ()
281-
282290 if kname == 'Escape' and bool (self .search ):
283291 self .header_search .set_text ('' )
284292
293+ if not self .header_search .has_focus ():
294+ self .on_window_main_unfocused_search_key_release_event (kname , event )
295+
296+ def on_window_main_unfocused_search_key_release_event (self , kname , event ):
285297 if kname == 'Escape' :
286298 self .header_search .grab_focus ()
287299
288- if kname == 'BackSpace' and not focus :
300+ if kname == 'BackSpace' :
289301 self .header_search .grab_focus_without_selecting ()
290302 self .header_search .delete_text (len (self .search ) - 1 , - 1 )
291303 self .header_search .set_position (- 1 )
292304
293- if kname == 'slash' and not focus :
305+ if kname == 'slash' :
294306 self .header_search .grab_focus_without_selecting ()
295307
296- if len (kname ) == 1 and not focus :
308+ if len (kname ) == 1 :
297309 self .header_search .grab_focus_without_selecting ()
298310 self .header_search .insert_text (kname , - 1 )
299311 self .header_search .set_position (- 1 )
300312
301- def on_window_main_key_press_event (self , _widget , event ):
302- kname = Gdk .keyval_name (event .keyval )
303- search = self .header_sbox .get_visible ()
304-
305- if kname == 'Tab' and bool (self .search ) and search :
306- self .js_keyboard_event ('._search' , 9 )
307- self .sync_header_search ()
308-
309- return True
310-
311313 def on_header_search_entry_key_press_event (self , _widget , event ):
312314 kname = Gdk .keyval_name (event .keyval )
313315
@@ -351,9 +353,7 @@ def on_header_search_entry_search_changed(self, widget):
351353
352354 def on_menu_main_link_clicked (self , widget ):
353355 link = Gtk .Buildable .get_name (widget ).split ('_' )[- 1 ]
354- link = '' if link == 'home' else link
355-
356- self .js_open_link (link )
356+ self .js_open_link (link .replace ('home' , '' ))
357357
358358 def on_header_button_save_clicked (self , _widget ):
359359 self .toggle_save_button (False )
0 commit comments