summaryrefslogtreecommitdiffstats
path: root/src/kernel/tqeventloop_x11_glib.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/kernel/tqeventloop_x11_glib.cpp')
-rw-r--r--src/kernel/tqeventloop_x11_glib.cpp21
1 files changed, 13 insertions, 8 deletions
diff --git a/src/kernel/tqeventloop_x11_glib.cpp b/src/kernel/tqeventloop_x11_glib.cpp
index 9d18d1073..ba638aac9 100644
--- a/src/kernel/tqeventloop_x11_glib.cpp
+++ b/src/kernel/tqeventloop_x11_glib.cpp
@@ -419,8 +419,10 @@ bool TQEventLoop::gsourcePrepare(GSource *gs, int * timeout)
}
}
- // include or exclude SocketNotifiers (by setting or cleaning poll events)
- if ( ! ( flags & ExcludeSocketNotifiers ) ) {
+ // Include or exclude SocketNotifiers (by setting or cleaning poll events)
+ // Socket notifier events are only activated in the core application event loop,
+ // so filter them out in other event loops.
+ if (!(flags & ExcludeSocketNotifiers) && TQApplication::isGuiThread()) {
TQPtrListIterator<TQSockNotGPollFD> it( d->sn_list );
TQSockNotGPollFD *sn;
while ( (sn=it.current()) ) {
@@ -491,17 +493,20 @@ bool TQEventLoop::gsourceCheck(GSource *gs) {
printf("inside gsourceCheck(1)\n");
#endif
+ ProcessEventsFlags flags = d->pev_flags;
+
// Socketnotifier events?
- TQPtrList<TQSockNotGPollFD> *list = &d->sn_list;
- //if ( list ) {
- TQSockNotGPollFD *sn = list->first();
- while ( sn ) {
+ if (!(flags & ExcludeSocketNotifiers) && TQApplication::isGuiThread())
+ {
+ TQPtrListIterator<TQSockNotGPollFD> it( d->sn_list );
+ TQSockNotGPollFD *sn;
+ while ( (sn=it.current()) ) {
+ ++it;
if ( sn->gPollFD.revents ) {
return TRUE;
}
- sn = list->next();
}
- //}
+ }
if (d->x_gPollFD.revents) {
#ifdef DEBUG_QT_GLIBMAINLOOP