diff options
author | Florian Bruhin <git@the-compiler.org> | 2016-08-16 11:15:32 +0200 |
---|---|---|
committer | Florian Bruhin <git@the-compiler.org> | 2016-08-16 11:15:32 +0200 |
commit | a43aa52c81ee379031f0d189889e4b45ff94824f (patch) | |
tree | b33feb46356e0fa88e90ff061d68cc06426d6e1e | |
parent | 4abbe502894dc19d7882cf233980e191a913f283 (diff) | |
download | qutebrowser-a43aa52c81ee379031f0d189889e4b45ff94824f.tar.gz qutebrowser-a43aa52c81ee379031f0d189889e4b45ff94824f.zip |
Fix #1641 for v0.8.x
This is the equivalent of 56515321dd3670ea41abed39378cff1b7c984910
-rw-r--r-- | qutebrowser/browser/webkit/webelem.py | 42 |
1 files changed, 22 insertions, 20 deletions
diff --git a/qutebrowser/browser/webkit/webelem.py b/qutebrowser/browser/webkit/webelem.py index 0731904b7..9aa6bb510 100644 --- a/qutebrowser/browser/webkit/webelem.py +++ b/qutebrowser/browser/webkit/webelem.py @@ -399,26 +399,28 @@ def rect_on_view(elem, *, elem_geometry=None, adjust_zoom=True, no_js=False): text = utils.compact_text(elem.toOuterXml(), 500) log.hints.vdebug("Client rectangles of element '{}': {}".format(text, rects)) - for i in range(int(rects.get("length", 0))): - rect = rects[str(i)] - width = rect.get("width", 0) - height = rect.get("height", 0) - if width > 1 and height > 1: - # fix coordinates according to zoom level - zoom = elem.webFrame().zoomFactor() - if not config.get('ui', 'zoom-text-only') and adjust_zoom: - rect["left"] *= zoom - rect["top"] *= zoom - width *= zoom - height *= zoom - rect = QRect(rect["left"], rect["top"], width, height) - frame = elem.webFrame() - while frame is not None: - # Translate to parent frames' position - # (scroll position is taken care of inside getClientRects) - rect.translate(frame.geometry().topLeft()) - frame = frame.parentFrame() - return rect + if rects is not None: + for i in range(int(rects.get("length", 0))): + rect = rects[str(i)] + width = rect.get("width", 0) + height = rect.get("height", 0) + if width > 1 and height > 1: + # fix coordinates according to zoom level + zoom = elem.webFrame().zoomFactor() + if not config.get('ui', 'zoom-text-only') and adjust_zoom: + rect["left"] *= zoom + rect["top"] *= zoom + width *= zoom + height *= zoom + rect = QRect(rect["left"], rect["top"], width, height) + frame = elem.webFrame() + while frame is not None: + # Translate to parent frames' position + # (scroll position is taken care of inside + # getClientRects) + rect.translate(frame.geometry().topLeft()) + frame = frame.parentFrame() + return rect # No suitable rects found via JS, try via the QWebElement API if elem_geometry is None: |