diff options
Diffstat (limited to 'src/server/mainwindow/mainwindow.cpp')
-rw-r--r-- | src/server/mainwindow/mainwindow.cpp | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/server/mainwindow/mainwindow.cpp b/src/server/mainwindow/mainwindow.cpp index 1d9e565..9e89baa 100644 --- a/src/server/mainwindow/mainwindow.cpp +++ b/src/server/mainwindow/mainwindow.cpp @@ -724,10 +724,11 @@ void MainWindow::onVncServerStateChange(Client* client) for (QList<ConnectionFrame*>::iterator it(_clientFrames.begin()); it != _clientFrames.end(); ++it) { Client *c = (**it).client(); - if (c == NULL) - continue; // Offline - if (c->id() == client->id() || - (c->desiredProjectionSource() != client->id() && !client->isProjectionSource())) + if (c == NULL || c->id() == client->id()) + continue; // Offline or self + if (c->currentProjectionSource() == client->id()) + continue; // Already watching this client + if (c->desiredProjectionSource() != client->id() && !client->isProjectionSource()) continue; // Not interested c->sendMessage(msg); } |