@@ -213,6 +213,10 @@ def read_settings_json(self, filename):
213213
214214 return json .loads (str (data ))
215215
216+ def run_javascript (self , method , * args ):
217+ script = """desktop.run('%s', %s)""" % (method , list (args ))
218+ self .webview .run_javascript (script )
219+
216220 def set_window_accel_groups (self ):
217221 group = Gtk .AccelGroup ()
218222 ctrl = Gdk .ModifierType .CONTROL_MASK
@@ -231,8 +235,8 @@ def set_window_accel_groups(self):
231235 self .window .add_accel_group (group )
232236
233237 def sync_header_search (self ):
234- self .js_element_value ( 'searchTag' , 'update_header_filter' )
235- self .js_element_value ( 'searchInput' , 'update_header_search' )
238+ self .run_javascript ( 'getValue' , 'searchTag' , 'update_header_filter' )
239+ self .run_javascript ( 'getValue' , 'searchInput' , 'update_header_search' )
236240
237241 def update_header_filter (self , text ):
238242 if text != self .filter :
@@ -285,7 +289,7 @@ def on_window_main_key_press_event(self, _widget, event):
285289 search = self .header_sbox .get_visible ()
286290
287291 if kname == 'Tab' and bool (self .search ) and search :
288- self .js_keyboard_event ( 'search' , 9 )
292+ self .run_javascript ( 'sendKey' , 'search' , 9 )
289293 self .sync_header_search ()
290294
291295 return True
@@ -331,22 +335,22 @@ def on_header_search_entry_key_press_event(self, _widget, event):
331335 kname = Gdk .keyval_name (event .keyval )
332336
333337 if kname == 'BackSpace' and not bool (self .search ):
334- self .js_keyboard_event ( 'search' , 8 )
338+ self .run_javascript ( 'sendKey' , 'search' , 8 )
335339 self .sync_header_search ()
336340
337341 def on_header_search_entry_key_release_event (self , _widget , event ):
338342 kname = Gdk .keyval_name (event .keyval )
339343
340344 if kname == 'Return' :
341- self .js_keyboard_event ( 'document' , 13 )
345+ self .run_javascript ( 'sendKey' , 'document' , 13 )
342346 self .webview .grab_focus ()
343347
344348 if kname == 'Down' :
345- self .js_keyboard_event ( 'document' , 40 )
349+ self .run_javascript ( 'sendKey' , 'document' , 40 )
346350 self .webview .grab_focus ()
347351
348352 if kname == 'Up' :
349- self .js_keyboard_event ( 'document' , 38 )
353+ self .run_javascript ( 'sendKey' , 'document' , 38 )
350354 self .webview .grab_focus ()
351355
352356 def on_finder_search_entry_key_release_event (self , _widget , event ):
@@ -366,23 +370,25 @@ def on_header_button_reload_clicked(self, _widget):
366370
367371 def on_header_search_entry_search_changed (self , widget ):
368372 self .search = widget .get_text ().strip ()
369- self .js_form_input ( self .search )
373+ self .run_javascript ( 'search' , self .search )
370374
371375 def on_menu_main_link_clicked (self , widget ):
372376 link = Gtk .Buildable .get_name (widget ).split ('_' )[- 1 ]
373- self .js_open_link (link .replace ('home' , '' ))
377+ link = link .replace ('home' , '' )
378+
379+ self .run_javascript ('navigate' , link )
374380
375381 def on_header_button_save_clicked (self , _widget ):
376382 self .toggle_save_button (False )
377- self .js_element_visible ( 'saveButton' , 'on_apply_button_visibility' )
383+ self .run_javascript ( 'isVisible' , 'saveButton' , 'on_apply_button_visibility' )
378384
379385 def on_apply_button_visibility (self , visible ):
380386 if visible :
381387 self .header_title .set_label ('Downloading...' )
382- self .js_click_element ( 'saveButton' )
388+ self .run_javascript ( 'click' , 'saveButton' )
383389 else :
384390 self .header_title .set_label ('Saving...' )
385- self .js_open_link ( '' )
391+ self .run_javascript ( 'navigate' , '' )
386392
387393 def on_finder_search_entry_map (self , _widget ):
388394 self .finder_search .grab_focus ()
@@ -463,28 +469,6 @@ def on_webview_context_menu(self, _widget, menu, _coords, _keyboard):
463469 if action == actions .OPEN_LINK :
464470 item .get_action ().connect ('activate' , self .on_webview_open_link )
465471
466- def run_javascript (self , method , * args ):
467- script = """desktop.run('%s', %s)""" % (method , list (args ))
468- self .webview .run_javascript (script )
469-
470- def js_form_input (self , text ):
471- self .run_javascript ('search' , text )
472-
473- def js_keyboard_event (self , selector , keycode , type = 'keydown' ):
474- self .run_javascript ('sendKey' , selector , type , keycode )
475-
476- def js_click_element (self , selector ):
477- self .run_javascript ('click' , selector )
478-
479- def js_open_link (self , link ):
480- self .run_javascript ('navigate' , self .app_url , link )
481-
482- def js_element_value (self , selector , callback ):
483- self .run_javascript ('getValue' , selector , callback )
484-
485- def js_element_visible (self , selector , callback ):
486- self .run_javascript ('isVisible' , selector , callback )
487-
488472
489473class DevdocsDesktopService (dbus .service .Object ):
490474
0 commit comments