summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Bruhin <git@the-compiler.org>2015-06-20 13:09:32 +0200
committerFlorian Bruhin <git@the-compiler.org>2015-06-20 13:09:32 +0200
commit4dd23c530afa70abf256542e09e860c806f58af6 (patch)
treed714ae5bd2e3b5b32649637865fb35cfb2e83f0b
parente2c375b87409fc42757be782188a4450bd560fb8 (diff)
parente459ac52cc277e06b6596477b6bcb491390e0198 (diff)
downloadqutebrowser-4dd23c530afa70abf256542e09e860c806f58af6.tar.gz
qutebrowser-4dd23c530afa70abf256542e09e860c806f58af6.zip
Merge branch 'artur-shaik-caret_on_selection'
-rw-r--r--qutebrowser/browser/webview.py13
1 files changed, 10 insertions, 3 deletions
diff --git a/qutebrowser/browser/webview.py b/qutebrowser/browser/webview.py
index 5a4fc3b69..f9c838c70 100644
--- a/qutebrowser/browser/webview.py
+++ b/qutebrowser/browser/webview.py
@@ -460,15 +460,22 @@ class WebView(QWebView):
elif mode == usertypes.KeyMode.caret:
settings = self.settings()
settings.setAttribute(QWebSettings.CaretBrowsingEnabled, True)
- self.selection_enabled = False
+ self.selection_enabled = bool(self.page().selectedText())
if self.isVisible():
# Sometimes the caret isn't immediately visible, but unfocusing
# and refocusing it fixes that.
self.clearFocus()
self.setFocus(Qt.OtherFocusReason)
- self.page().currentFrame().evaluateJavaScript(
- utils.read_file('javascript/position_caret.js'))
+
+ # Move the caret to the first element in the viewport if there
+ # isn't any text which is already selected.
+ #
+ # Note: We can't use hasSelection() here, as that's always
+ # true in caret mode.
+ if not self.page().selectedText():
+ self.page().currentFrame().evaluateJavaScript(
+ utils.read_file('javascript/position_caret.js'))
@pyqtSlot(usertypes.KeyMode)
def on_mode_left(self, mode):