@@ -34,8 +34,8 @@ def __init__(self):
34
34
35
35
self .app_url = 'https://devdocs.io'
36
36
self .search = self .args .parse_args ().s .strip ()
37
- self .open_link = False
38
37
self .filter = ''
38
+ self .open_link = False
39
39
self .options = self .read_settings_json ('cookies' )
40
40
self .prefs = self .read_settings_json ('prefs' )
41
41
self .globals = Gtk .Settings .get_default ()
@@ -263,6 +263,16 @@ def on_zoom_reset_accel_pressed(self, _group, _widget, _code, _modifier):
263
263
def on_window_main_destroy (self , _event ):
264
264
self .quit ()
265
265
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
+
266
276
def on_window_main_key_release_event (self , _widget , event ):
267
277
kname = Gdk .keyval_name (event .keyval )
268
278
search = self .header_sbox .get_visible ()
@@ -277,37 +287,29 @@ def on_window_main_key_release_event(self, _widget, event):
277
287
self .on_window_main_search_key_release_event (kname , event )
278
288
279
289
def on_window_main_search_key_release_event (self , kname , event ):
280
- focus = self .header_search .has_focus ()
281
-
282
290
if kname == 'Escape' and bool (self .search ):
283
291
self .header_search .set_text ('' )
284
292
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 ):
285
297
if kname == 'Escape' :
286
298
self .header_search .grab_focus ()
287
299
288
- if kname == 'BackSpace' and not focus :
300
+ if kname == 'BackSpace' :
289
301
self .header_search .grab_focus_without_selecting ()
290
302
self .header_search .delete_text (len (self .search ) - 1 , - 1 )
291
303
self .header_search .set_position (- 1 )
292
304
293
- if kname == 'slash' and not focus :
305
+ if kname == 'slash' :
294
306
self .header_search .grab_focus_without_selecting ()
295
307
296
- if len (kname ) == 1 and not focus :
308
+ if len (kname ) == 1 :
297
309
self .header_search .grab_focus_without_selecting ()
298
310
self .header_search .insert_text (kname , - 1 )
299
311
self .header_search .set_position (- 1 )
300
312
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
-
311
313
def on_header_search_entry_key_press_event (self , _widget , event ):
312
314
kname = Gdk .keyval_name (event .keyval )
313
315
@@ -351,9 +353,7 @@ def on_header_search_entry_search_changed(self, widget):
351
353
352
354
def on_menu_main_link_clicked (self , widget ):
353
355
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' , '' ))
357
357
358
358
def on_header_button_save_clicked (self , _widget ):
359
359
self .toggle_save_button (False )
0 commit comments