Avoid event processing infinite loop
Summary: Kwin on X11 overrides QCoreApplication::notify to get low level system event. If something handled by the low level filtering ever calls postEvent we would end up in a loop. This was found when forwarding a key event into a QQuickWindow in a similar manner that mouse events are forwarded. Fortunately there's a flag to separate generated and core events Test Plan: No more infinite loop Kwin X11 still works fine Reviewers: #kwin, zzag Reviewed By: #kwin, zzag Subscribers: kwin Tags: #kwin Differential Revision: https://phabricator.kde.org/D24207
This commit is contained in:
parent
ef5406990e
commit
0c876cd93f
1 changed files with 1 additions and 1 deletions
|
@ -273,7 +273,7 @@ void ApplicationX11::performStartup()
|
||||||
|
|
||||||
bool ApplicationX11::notify(QObject* o, QEvent* e)
|
bool ApplicationX11::notify(QObject* o, QEvent* e)
|
||||||
{
|
{
|
||||||
if (Workspace::self()->workspaceEvent(e))
|
if (e->spontaneous() && Workspace::self()->workspaceEvent(e))
|
||||||
return true;
|
return true;
|
||||||
return QApplication::notify(o, e);
|
return QApplication::notify(o, e);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue