diff options
author | Zhang Liang <zhanglianga@uniontech.com> | 2021-02-01 19:29:43 +0800 |
---|---|---|
committer | Zhang Liang <zhanglianga@uniontech.com> | 2021-02-02 15:47:07 +0800 |
commit | 16760280fd04cf70255bab16d9acecad254fdd8f (patch) | |
tree | 985f03301cd4dd5c354d2a8a956222cd431fbbe1 /src | |
parent | 53b7433144a3edd4974c9f25cf22f5f6f4ec5d49 (diff) |
Fix: remove listener
Add the operation for removing the listener form listener list
Change-Id: Ief2ff1303b607eee499543303fe80e51f8f10cc5
Reviewed-by: David Edmundson <davidedmundson@kde.org>
Diffstat (limited to 'src')
-rw-r--r-- | src/client/qwaylanddisplay.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/client/qwaylanddisplay.cpp b/src/client/qwaylanddisplay.cpp index d39b25697..82dcc63e0 100644 --- a/src/client/qwaylanddisplay.cpp +++ b/src/client/qwaylanddisplay.cpp @@ -447,9 +447,10 @@ void QWaylandDisplay::addRegistryListener(RegistryListener listener, void *data) void QWaylandDisplay::removeListener(RegistryListener listener, void *data) { - std::remove_if(mRegistryListeners.begin(), mRegistryListeners.end(), [=](Listener l){ + auto iter = std::remove_if(mRegistryListeners.begin(), mRegistryListeners.end(), [=](Listener l){ return (l.listener == listener && l.data == data); }); + mRegistryListeners.erase(iter, mRegistryListeners.end()); } uint32_t QWaylandDisplay::currentTimeMillisec() |