Skip to content

Commit 2f29e8a

Browse files
committed
use mutation observer to sync search-input and search-tag
1 parent 575bd81 commit 2f29e8a

File tree

2 files changed

+16
-17
lines changed

2 files changed

+16
-17
lines changed

devdocs_desktop.py

Lines changed: 10 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ def __init__(self):
9898

9999
self.header_search = self.main.get_object('header_search_entry')
100100
self.header_search.get_style_context().remove_class('search')
101-
self.header_search.set_text(self.search)
101+
self.header_search.set_text('')
102102

103103
self.revealer = self.main.get_object('revealer_main')
104104
self.finder_search = self.main.get_object('finder_search_entry')
@@ -242,20 +242,6 @@ def set_window_accel_groups(self):
242242

243243
self.window.add_accel_group(group)
244244

245-
def sync_header_search(self):
246-
self.run_javascript('getValue', 'searchTag', 'update_header_filter')
247-
self.run_javascript('getValue', 'searchInput', 'update_header_search')
248-
249-
def update_header_filter(self, text):
250-
if text != self.filter:
251-
self.filter = text
252-
self.header_filter.set_label(text)
253-
self.header_filter.set_visible(bool(text))
254-
255-
def update_header_search(self, text):
256-
if text != self.search:
257-
self.header_search.set_text(text)
258-
259245
def on_script_message(self, manager, data):
260246
data = data.get_js_value()
261247
data = json.loads(data.to_json(0))
@@ -268,6 +254,15 @@ def on_script_message(self, manager, data):
268254
def on_apply_button_changed(self, visible):
269255
self.header_save.set_visible(visible)
270256

257+
def on_search_tag_changed(self, label):
258+
self.filter = label
259+
self.header_filter.set_label(label)
260+
self.header_filter.set_visible(bool(label))
261+
262+
def on_search_input_changed(self, text):
263+
self.search = text
264+
self.header_search.set_text(text)
265+
271266
def on_cookies_changed(self, _manager):
272267
self.retrieve_cookies_values()
273268

@@ -302,7 +297,6 @@ def on_window_main_key_press_event(self, _widget, event):
302297

303298
if kname == 'Tab' and bool(self.search) and search:
304299
self.run_javascript('sendKey', 'search', kcode)
305-
self.sync_header_search()
306300

307301
return True
308302

@@ -349,7 +343,6 @@ def on_header_search_entry_key_press_event(self, _widget, event):
349343

350344
if kname == 'BackSpace' and not bool(self.search):
351345
self.run_javascript('sendKey', 'search', kcode)
352-
self.sync_header_search()
353346

354347
def on_header_search_entry_key_release_event(self, _widget, event):
355348
kname = Gdk.keyval_name(event.keyval)

scripts/webview.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ class DevDocsDesktop {
33
this.refs = refs
44

55
this.observe('settings', this.syncSettings, { attributes: true }, true)
6+
this.observe('searchTag', this.syncSearch, { childList: true }, true)
67
}
78

89
query(selector) {
@@ -53,6 +54,11 @@ class DevDocsDesktop {
5354
this.isVisible('saveButton', 'on_apply_button_changed')
5455
}
5556

57+
syncSearch() {
58+
this.getValue('searchTag', 'on_search_tag_changed')
59+
this.getValue('searchInput', 'on_search_input_changed')
60+
}
61+
5662
isVisible(ref, callback) {
5763
this.onElement(ref, (element) => {
5864
const style = getComputedStyle(element)

0 commit comments

Comments
 (0)