eventfilter: Ignore QKeyEvents in ChildEventFilter
Based on crash reports, sometimes somehow a QKeyEvent gets lost in there.
This commit is contained in:
parent
9447182809
commit
bb7bbb6ead
|
|
@ -6,11 +6,12 @@
|
|||
|
||||
from qutebrowser.qt import machinery
|
||||
from qutebrowser.qt.core import QObject, QEvent, Qt, QTimer
|
||||
from qutebrowser.qt.gui import QKeyEvent
|
||||
from qutebrowser.qt.widgets import QWidget
|
||||
|
||||
from qutebrowser.config import config
|
||||
from qutebrowser.utils import log, message, usertypes, qtutils
|
||||
from qutebrowser.keyinput import modeman
|
||||
from qutebrowser.keyinput import modeman, keyutils
|
||||
|
||||
|
||||
class ChildEventFilter(QObject):
|
||||
|
|
@ -69,6 +70,15 @@ class ChildEventFilter(QObject):
|
|||
|
||||
child.installEventFilter(self._filter)
|
||||
elif event.type() == QEvent.Type.ChildRemoved:
|
||||
if isinstance(event, QKeyEvent):
|
||||
# WORKAROUND for unknown (Py)Qt bug
|
||||
info = keyutils.KeyInfo.from_event(event)
|
||||
log.misc.warning(
|
||||
f"ChildEventFilter: ignoring key event {info} "
|
||||
f"on {qtutils.qobj_repr(obj)}"
|
||||
)
|
||||
return False
|
||||
|
||||
child = event.child()
|
||||
log.misc.debug(
|
||||
f"{qtutils.qobj_repr(obj)}: removed child {qtutils.qobj_repr(child)}")
|
||||
|
|
|
|||
Loading…
Reference in New Issue