From a3ae9507075b6f5fe4e58b3469e552509b643310 Mon Sep 17 00:00:00 2001 From: Florian Bruhin Date: Sun, 30 Sep 2018 22:55:17 +0200 Subject: Ignore click events with invalid positions Since Qt 5.11.2, various crash logs like this popped up after clicking a ` 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()) -- cgit v1.2.3-54-g00ecf