From 9ea35022d237e93f456d8649725ce1c52c2b61e9 Mon Sep 17 00:00:00 2001 From: Timothy Pearson Date: Sun, 23 Nov 2014 15:17:26 -0600 Subject: Fix compositing manager detection Add advanced option to allow a DCOP call to bypass the local call-->send translation shortcut --- dcop/dcopclient.cpp | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) (limited to 'dcop/dcopclient.cpp') diff --git a/dcop/dcopclient.cpp b/dcop/dcopclient.cpp index 40cfd41c8..cfa912362 100644 --- a/dcop/dcopclient.cpp +++ b/dcop/dcopclient.cpp @@ -1737,31 +1737,39 @@ bool DCOPClient::call(const TQCString &remApp, const TQCString &remObjId, TQCString& replyType, TQByteArray &replyData, bool useEventLoop) { - return call( remApp, remObjId, remFun, data, replyType, replyData, useEventLoop, -1 ); + return call( remApp, remObjId, remFun, data, replyType, replyData, useEventLoop, -1, false ); } bool DCOPClient::call(const TQCString &remApp, const TQCString &remObjId, const TQCString &remFun, const TQByteArray &data, TQCString& replyType, TQByteArray &replyData, bool useEventLoop, int timeout) +{ + return call( remApp, remObjId, remFun, data, replyType, replyData, useEventLoop, timeout, false ); +} + +bool DCOPClient::call(const TQCString &remApp, const TQCString &remObjId, + const TQCString &remFun, const TQByteArray &data, + TQCString& replyType, TQByteArray &replyData, + bool useEventLoop, int timeout, bool forceRemote) { if (remApp.isEmpty()) return false; DCOPClient *localClient = findLocalClient( remApp ); - if ( localClient ) { + if ( localClient && !forceRemote ) { bool saveTransaction = d->transaction; TQ_INT32 saveTransactionId = d->transactionId; TQCString saveSenderId = d->senderId; d->senderId = 0; // Local call bool b = localClient->receive( remApp, remObjId, remFun, data, replyType, replyData ); - + TQ_INT32 id = localClient->transactionId(); if (id) { // Call delayed. We have to wait till it has been processed. do { - TQApplication::eventLoop()->processEvents( TQEventLoop::WaitForMore); + TQApplication::eventLoop()->processEvents(TQEventLoop::WaitForMore); } while( !localClient->isLocalTransactionFinished(id, replyType, replyData)); b = true; } -- cgit v1.2.1