Skip to content

Commit dcc86da

Browse files
committed
optimize search term/filter sync with webview
1 parent 549013c commit dcc86da

File tree

1 file changed

+13
-20
lines changed

1 file changed

+13
-20
lines changed

devdocs_desktop.py

Lines changed: 13 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -222,24 +222,19 @@ def set_window_accel_groups(self):
222222

223223
self.window.add_accel_group(group)
224224

225-
def update_header_filter(self, text):
226-
filter_exists = bool(text.strip())
227-
self.header_filter.set_visible(filter_exists)
225+
def sync_header_search(self):
226+
self.js_element_value('._search-tag', self.update_header_filter)
227+
self.js_element_value('._search-input', self.update_header_search)
228228

229-
if filter_exists:
230-
self.filter = text.strip()
229+
def update_header_filter(self, text):
230+
if text != self.filter:
231+
self.filter = text
231232
self.header_filter.set_label(text)
232-
self.reset_header_search()
233-
else:
234-
self.filter = ''
233+
self.header_filter.set_visible(bool(text))
235234

236-
def reset_header_filter(self, value=''):
237-
if not bool(value.strip()):
238-
self.update_header_filter('')
239-
240-
def reset_header_search(self, value=''):
241-
if not bool(value.strip()):
242-
self.header_search.set_text('')
235+
def update_header_search(self, text):
236+
if text != self.search:
237+
self.header_search.set_text(text)
243238

244239
def on_cookies_changed(self, _manager):
245240
self.retrieve_cookies_values()
@@ -309,7 +304,7 @@ def on_window_main_key_press_event(self, _widget, event):
309304

310305
if kname == 'Tab' and bool(self.search) and search:
311306
self.js_keyboard_event('._search', 9)
312-
self.js_element_value('._search-tag', self.update_header_filter)
307+
self.sync_header_search()
313308

314309
return True
315310

@@ -318,7 +313,7 @@ def on_header_search_entry_key_press_event(self, _widget, event):
318313

319314
if kname == 'BackSpace' and not bool(self.search):
320315
self.js_keyboard_event('._search', 8)
321-
self.js_element_value('._search-tag', self.update_header_filter)
316+
self.sync_header_search()
322317

323318
def on_header_search_entry_key_release_event(self, _widget, event):
324319
kname = Gdk.keyval_name(event.keyval)
@@ -420,9 +415,7 @@ def on_webview_title_changed(self, _widget, _title):
420415
def on_webview_uri_changed(self, _widget, _uri):
421416
save = self.webview.get_uri().endswith('settings')
422417
self.toggle_save_button(save)
423-
424-
self.js_element_value('._search-input', self.reset_header_search)
425-
self.js_element_value('._search-tag', self.reset_header_filter)
418+
self.sync_header_search()
426419

427420
def on_history_changed(self, _list, _added, _removed):
428421
back = self.webview.can_go_back()

0 commit comments

Comments
 (0)