Added more checks to avoid sending unchanged clipboard data.

Still takes too long to query the clipboard owner for info
(maybe 1/10th second) but not sure why or if that can be
improved.
This commit is contained in:
crs
2002-05-01 16:17:57 +00:00
parent f2e83e607d
commit f052d126c0
2 changed files with 44 additions and 11 deletions

View File

@@ -956,9 +956,21 @@ void CServer::updatePrimaryClipboard(ClipboardID id)
// if clipboard changed then other screens have an
// out-of-date clipboard.
if (time != clipboard.m_clipboard.getTime()) {
log((CLOG_DEBUG "clipboard %d changed", id));
clipboard.m_clipboardData = clipboard.m_clipboard.marshall();
clearGotClipboard(id);
log((CLOG_DEBUG "clipboard %d time changed (%08x to %08x)", id, time, clipboard.m_clipboard.getTime()));
// marshall data
CString newData = clipboard.m_clipboard.marshall();
// compare old and new data. if identical then the clipboard
// hasn't really changed.
if (newData != clipboard.m_clipboardData) {
log((CLOG_DEBUG "clipboard %d changed", id));
clipboard.m_clipboardData = newData;
clearGotClipboard(id);
}
else {
log((CLOG_DEBUG "clipboard %d unchanged", id));
}
m_primaryInfo->m_gotClipboard[id] = true;
}
}