summaryrefslogtreecommitdiffstats
path: root/libtdenetwork/qgpgme/eventloopinteractor.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'libtdenetwork/qgpgme/eventloopinteractor.cpp')
-rw-r--r--libtdenetwork/qgpgme/eventloopinteractor.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/libtdenetwork/qgpgme/eventloopinteractor.cpp b/libtdenetwork/qgpgme/eventloopinteractor.cpp
index 3b07189d7..b6d9830d6 100644
--- a/libtdenetwork/qgpgme/eventloopinteractor.cpp
+++ b/libtdenetwork/qgpgme/eventloopinteractor.cpp
@@ -30,6 +30,11 @@
#include <tqsocketnotifier.h>
#include <tqapplication.h>
+#include <tqvaluelist.h>
+
+TQValueList<int> writeActivity;
+TQValueList<int> readActivity;
+
using namespace GpgME;
QGpgME::EventLoopInteractor::EventLoopInteractor( TQObject * parent, const char * name )
@@ -77,11 +82,21 @@ void QGpgME::EventLoopInteractor::unregisterWatcher( void * tag ) {
}
void QGpgME::EventLoopInteractor::slotWriteActivity( int socket ) {
+ if (writeActivity.contains(socket)) {
+ return;
+ }
+ writeActivity.append(socket);
actOn( socket , Write );
+ writeActivity.remove(socket);
}
void QGpgME::EventLoopInteractor::slotReadActivity( int socket ) {
+ if (readActivity.contains(socket)) {
+ return;
+ }
+ readActivity.append(socket);
actOn( socket , Read );
+ readActivity.remove(socket);
}
void QGpgME::EventLoopInteractor::nextTrustItemEvent( GpgME::Context * context, const GpgME::TrustItem & item ) {