summaryrefslogtreecommitdiff
path: root/qutebrowser/keyinput/eventfilter.py
diff options
context:
space:
mode:
Diffstat (limited to 'qutebrowser/keyinput/eventfilter.py')
-rw-r--r--qutebrowser/keyinput/eventfilter.py27
1 files changed, 15 insertions, 12 deletions
diff --git a/qutebrowser/keyinput/eventfilter.py b/qutebrowser/keyinput/eventfilter.py
index 7916f16fe..992d9f4ce 100644
--- a/qutebrowser/keyinput/eventfilter.py
+++ b/qutebrowser/keyinput/eventfilter.py
@@ -85,19 +85,22 @@ class EventFilter(QObject):
Return:
True if the event should be filtered, False if it's passed through.
"""
+ if not isinstance(obj, QWindow):
+ # We already handled this same event at some point earlier, so
+ # we're not interested in it anymore.
+ return False
+
+ typ = event.type()
+
+ if typ not in self._handlers:
+ return False
+
+ if not self._activated:
+ return False
+
+ handler = self._handlers[typ]
try:
- if not self._activated:
- return False
- if not isinstance(obj, QWindow):
- # We already handled this same event at some point earlier, so
- # we're not interested in it anymore.
- return False
- try:
- handler = self._handlers[event.type()]
- except KeyError:
- return False
- else:
- return handler(event)
+ return handler(event)
except:
# If there is an exception in here and we leave the eventfilter
# activated, we'll get an infinite loop and a stack overflow.