From 0b16a361204080f1ce365901ee92fe99aea96542 Mon Sep 17 00:00:00 2001 From: Florian Bruhin Date: Mon, 8 Aug 2016 14:05:30 +0200 Subject: [PATCH] Clean up handling of focus element Also fixes #1359. --- qutebrowser/browser/webelem.py | 3 +-- qutebrowser/browser/webkit/webkitelem.py | 2 +- qutebrowser/browser/webkit/webview.py | 2 +- tests/unit/browser/webkit/test_webkitelem.py | 2 +- 4 files changed, 4 insertions(+), 5 deletions(-) diff --git a/qutebrowser/browser/webelem.py b/qutebrowser/browser/webelem.py index c1910145a..bd4bb20b4 100644 --- a/qutebrowser/browser/webelem.py +++ b/qutebrowser/browser/webelem.py @@ -36,7 +36,7 @@ from qutebrowser.utils import log, usertypes, utils, qtutils Group = usertypes.enum('Group', ['all', 'links', 'images', 'url', 'prevnext', - 'focus', 'inputs']) + 'inputs']) SELECTORS = { @@ -47,7 +47,6 @@ SELECTORS = { Group.images: 'img', Group.url: '[src], [href]', Group.prevnext: 'a, area, button, link, [role=button]', - Group.focus: '*:focus', Group.inputs: ('input[type=text], input[type=email], input[type=url], ' 'input[type=tel], input[type=number], ' 'input[type=password], input[type=search], ' diff --git a/qutebrowser/browser/webkit/webkitelem.py b/qutebrowser/browser/webkit/webkitelem.py index 3bbb8a1ae..71d0b9650 100644 --- a/qutebrowser/browser/webkit/webkitelem.py +++ b/qutebrowser/browser/webkit/webkitelem.py @@ -353,5 +353,5 @@ def focus_elem(frame): Args: frame: The QWebFrame to search in. """ - elem = frame.findFirstElement(webelem.SELECTORS[webelem.Group.focus]) + elem = frame.findFirstElement('*:focus') return WebKitElement(elem) diff --git a/qutebrowser/browser/webkit/webview.py b/qutebrowser/browser/webkit/webview.py index e871cdb4f..34246e069 100644 --- a/qutebrowser/browser/webkit/webview.py +++ b/qutebrowser/browser/webkit/webview.py @@ -325,7 +325,7 @@ class WebView(QWebView): return frame = self.page().currentFrame() try: - elem = webkitelem.WebKitElement(frame.findFirstElement(':focus')) + elem = webkitelem.focus_elem(frame) except webkitelem.IsNullError: log.webview.debug("Focused element is null!") return diff --git a/tests/unit/browser/webkit/test_webkitelem.py b/tests/unit/browser/webkit/test_webkitelem.py index 635c3a1b0..2fec4d1dc 100644 --- a/tests/unit/browser/webkit/test_webkitelem.py +++ b/tests/unit/browser/webkit/test_webkitelem.py @@ -188,7 +188,7 @@ class SelectionAndFilterTests: webelem.Group.url]), ] - GROUPS = [e for e in webelem.Group if e != webelem.Group.focus] + GROUPS = list(webelem.Group) COMBINATIONS = list(itertools.product(TESTS, GROUPS))