diff options
-rw-r--r-- | doc/changelog.asciidoc | 1 | ||||
-rw-r--r-- | qutebrowser/browser/mouse.py | 8 | ||||
-rw-r--r-- | qutebrowser/browser/webengine/webenginetab.py | 4 |
3 files changed, 9 insertions, 4 deletions
diff --git a/doc/changelog.asciidoc b/doc/changelog.asciidoc index 037da5ee5..66c20f0ad 100644 --- a/doc/changelog.asciidoc +++ b/doc/changelog.asciidoc @@ -96,6 +96,7 @@ Fixed - Crash when doing initial run on Wayland without XWayland - Crash when trying to load an empty session file. - `:hint` with an invalid `--mode=` value now shows a proper error. +- Rare crash on Qt 5.11.2 when clicking on `<select>` elements. Removed ~~~~~~~ diff --git a/qutebrowser/browser/mouse.py b/qutebrowser/browser/mouse.py index 4667471fc..7c405a57e 100644 --- a/qutebrowser/browser/mouse.py +++ b/qutebrowser/browser/mouse.py @@ -116,9 +116,13 @@ class MouseEventFilter(QObject): self._ignore_wheel_event = True + pos = e.pos() + if pos.x() < 0 or pos.y() < 0: + log.mouse.warning("Ignoring invalid click at {}".format(pos)) + return False + if e.button() != Qt.NoButton: - self._tab.elements.find_at_pos(e.pos(), - self._mousepress_insertmode_cb) + self._tab.elements.find_at_pos(pos, self._mousepress_insertmode_cb) return False diff --git a/qutebrowser/browser/webengine/webenginetab.py b/qutebrowser/browser/webengine/webenginetab.py index 3b72719e7..b00587bf6 100644 --- a/qutebrowser/browser/webengine/webenginetab.py +++ b/qutebrowser/browser/webengine/webenginetab.py @@ -631,8 +631,8 @@ class WebEngineElements(browsertab.AbstractElements): self._tab.run_js_async(js_code, js_cb) def find_at_pos(self, pos, callback): - assert pos.x() >= 0 - assert pos.y() >= 0 + assert pos.x() >= 0, pos + assert pos.y() >= 0, pos pos /= self._tab.zoom.factor() js_code = javascript.assemble('webelem', 'find_at_pos', pos.x(), pos.y()) |