diff --git a/orbis-kernel/src/sys/sys_event.cpp b/orbis-kernel/src/sys/sys_event.cpp index f20486773..5a6a8ff83 100644 --- a/orbis-kernel/src/sys/sys_event.cpp +++ b/orbis-kernel/src/sys/sys_event.cpp @@ -134,6 +134,10 @@ static SysResult keventChange(KQueue *kq, KEvent &change, Thread *thread) { return orbis::ErrorCode::NOENT; } + if (change.filter == kEvFiltDisplay || change.filter == kEvFiltGraphicsCore) { + change.flags |= kEvClear; + } + if (!noteLock.owns_lock()) { noteLock = std::unique_lock(nodeIt->mutex); } @@ -300,7 +304,7 @@ orbis::SysResult orbis::sys_kevent(Thread *thread, sint fd, if (note.event.filter == kEvFiltGraphicsCore || note.event.filter == kEvFiltDisplay) { - waitHack = true; + note.triggered = false; } if (note.event.flags & kEvDispatch) {