From a8d79fedf381b89114bafa78334971e6e432c2ec Mon Sep 17 00:00:00 2001 From: Artur Shaikhullin Date: Thu, 7 Dec 2017 17:45:05 +0600 Subject: [PATCH] Fix fetching selection --- qutebrowser/browser/webkit/webkittab.py | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/qutebrowser/browser/webkit/webkittab.py b/qutebrowser/browser/webkit/webkittab.py index fa77627f9..8c63c9ef8 100644 --- a/qutebrowser/browser/webkit/webkittab.py +++ b/qutebrowser/browser/webkit/webkittab.py @@ -160,7 +160,7 @@ class WebKitCaret(browsertab.AbstractCaret): settings = self._widget.settings() settings.setAttribute(QWebSettings.CaretBrowsingEnabled, True) - self.selection_enabled = bool(self.selection()) + self.selection_enabled = bool(self._selection()) if self._widget.isVisible(): # Sometimes the caret isn't immediately visible, but unfocusing @@ -173,7 +173,7 @@ class WebKitCaret(browsertab.AbstractCaret): # # Note: We can't use hasSelection() here, as that's always # true in caret mode. - if not self.selection(): + if not self.selection_enabled: self._widget.page().currentFrame().evaluateJavaScript( utils.read_file('javascript/position_caret.js')) @@ -336,10 +336,13 @@ class WebKitCaret(browsertab.AbstractCaret): return self._widget.hasSelection() def selection(self, html=False, callback=False): + callback(self._selection(html)) + + def _selection(self, html=False): if html: - callback(self._widget.selectedHtml()) + return self._widget.selectedHtml() else: - callback(self._widget.selectedText()) + return self._widget.selectedText() def follow_selected(self, *, tab=False): if not self.has_selection(): @@ -351,7 +354,7 @@ class WebKitCaret(browsertab.AbstractCaret): self._tab.run_js_async( 'window.getSelection().anchorNode.parentNode.click()') else: - selection = self.selection(html=True) + selection = self._selection(html=True) try: selected_element = xml.etree.ElementTree.fromstring( '{}'.format(selection)).find('a')