diff options
Diffstat (limited to 'src/gui/ConnectWindow.cpp')
-rw-r--r-- | src/gui/ConnectWindow.cpp | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/src/gui/ConnectWindow.cpp b/src/gui/ConnectWindow.cpp index 4d26e61c..b08efb85 100644 --- a/src/gui/ConnectWindow.cpp +++ b/src/gui/ConnectWindow.cpp @@ -157,13 +157,19 @@ ConnectWindow::connect(bool existing) uri = user_uri; } - if (existing) + if (existing) { uri = world->engine()->uri().str(); + } - // Create client-side listener - SharedPtr<ThreadedSigClientInterface> tsci(new ThreadedSigClientInterface(1024)); + SharedPtr<ThreadedSigClientInterface> tsci; + if (world->engine()) { + tsci = PtrCast<ThreadedSigClientInterface>( + world->engine()->respondee()); + } - world->set_engine(world->interface(uri, tsci)); + if (!tsci) { + world->set_engine(world->interface(uri, tsci)); + } _app->attach(tsci); _app->register_callbacks(); @@ -203,6 +209,7 @@ ConnectWindow::connect(bool existing) SharedPtr<SigClientInterface> client(new SigClientInterface()); + world->engine()->set_respondee(client); _app->attach(client); _app->register_callbacks(); |