Blame SOURCES/0014-Fix-remove-listener.patch

165ad0
From 88b2e6c9728d01a9aa334026629fbb1ce85fe197 Mon Sep 17 00:00:00 2001
f8c1a9
From: Zhang Liang <zhanglianga@uniontech.com>
f8c1a9
Date: Mon, 1 Feb 2021 19:29:43 +0800
165ad0
Subject: [PATCH 14/40] Fix: remove listener
f8c1a9
f8c1a9
Add the operation for removing the listener form listener list
f8c1a9
f8c1a9
Change-Id: Ief2ff1303b607eee499543303fe80e51f8f10cc5
f8c1a9
Reviewed-by: David Edmundson <davidedmundson@kde.org>
f8c1a9
(cherry picked from commit 16760280fd04cf70255bab16d9acecad254fdd8f)
f8c1a9
---
f8c1a9
 src/client/qwaylanddisplay.cpp | 3 ++-
f8c1a9
 1 file changed, 2 insertions(+), 1 deletion(-)
f8c1a9
f8c1a9
diff --git a/src/client/qwaylanddisplay.cpp b/src/client/qwaylanddisplay.cpp
f8c1a9
index f10c1f79..e0dfe8b2 100644
f8c1a9
--- a/src/client/qwaylanddisplay.cpp
f8c1a9
+++ b/src/client/qwaylanddisplay.cpp
f8c1a9
@@ -452,9 +452,10 @@ void QWaylandDisplay::addRegistryListener(RegistryListener listener, void *data)
f8c1a9
 
f8c1a9
 void QWaylandDisplay::removeListener(RegistryListener listener, void *data)
f8c1a9
 {
f8c1a9
-    std::remove_if(mRegistryListeners.begin(), mRegistryListeners.end(), [=](Listener l){
f8c1a9
+    auto iter = std::remove_if(mRegistryListeners.begin(), mRegistryListeners.end(), [=](Listener l){
f8c1a9
         return (l.listener == listener && l.data == data);
f8c1a9
     });
f8c1a9
+    mRegistryListeners.erase(iter, mRegistryListeners.end());
f8c1a9
 }
f8c1a9
 
f8c1a9
 uint32_t QWaylandDisplay::currentTimeMillisec()
f8c1a9
-- 
165ad0
2.35.1
f8c1a9