Fix wrong function used to get clipboard data in the server

This commit is contained in:
Waester 2019-10-04 01:45:37 +02:00
parent 4b65e5cfba
commit 73fbfc56b9
1 changed files with 11 additions and 4 deletions

View File

@ -486,12 +486,19 @@ Server::switchScreen(BaseClientProxy* dst,
// update the primary client's clipboards if we're leaving the // update the primary client's clipboards if we're leaving the
// primary screen. // primary screen.
if (m_active == m_primaryClient && m_enableClipboard) { if (m_enableClipboard) {
for (ClipboardID id = 0; id < kClipboardEnd; ++id) { for (ClipboardID id = 0; id < kClipboardEnd; ++id) {
ClipboardInfo& clipboard = m_clipboards[id]; ClipboardInfo& clipboard = m_clipboards[id];
if (clipboard.m_clipboardOwner == getName(m_primaryClient)) { if (m_active == m_primaryClient && clipboard.m_clipboardOwner == getName(m_primaryClient)) {
onClipboardChanged(m_primaryClient, m_active->getClipboard(id, &clipboard.m_clipboard);
id, clipboard.m_clipboardSeqNum); }
String data = clipboard.m_clipboard.marshall();
if (data != clipboard.m_clipboardData) {
for (ClientList::const_iterator index = m_clients.begin(); index != m_clients.end(); ++index) {
BaseClientProxy* client = index->second;
client->setClipboardDirty(id, client != m_active);
}
clipboard.m_clipboardData = data;
} }
} }
} }