diff --git a/synergy/CMSWindowsClipboard.cpp b/synergy/CMSWindowsClipboard.cpp index f1b2060b..006ebc75 100644 --- a/synergy/CMSWindowsClipboard.cpp +++ b/synergy/CMSWindowsClipboard.cpp @@ -20,7 +20,7 @@ CMSWindowsClipboard::~CMSWindowsClipboard() bool CMSWindowsClipboard::open(Time time) { - log((CLOG_INFO "open clipboard")); + log((CLOG_DEBUG "open clipboard")); if (!OpenClipboard(m_window)) { log((CLOG_WARN "failed to open clipboard")); @@ -42,14 +42,14 @@ bool CMSWindowsClipboard::open(Time time) void CMSWindowsClipboard::close() { - log((CLOG_INFO "close clipboard")); + log((CLOG_DEBUG "close clipboard")); CloseClipboard(); } void CMSWindowsClipboard::add( EFormat format, const CString& data) { - log((CLOG_INFO "add %d bytes to clipboard format: %d", data.size(), format)); + log((CLOG_DEBUG "add %d bytes to clipboard format: %d", data.size(), format)); if (!OpenClipboard(m_window)) { log((CLOG_WARN "failed to open clipboard")); diff --git a/synergy/CMSWindowsScreen.cpp b/synergy/CMSWindowsScreen.cpp index e0fbbdd6..49860496 100644 --- a/synergy/CMSWindowsScreen.cpp +++ b/synergy/CMSWindowsScreen.cpp @@ -37,7 +37,10 @@ void CMSWindowsScreen::init(HINSTANCE instance) void CMSWindowsScreen::doRun() { + // save thread id for posting quit message m_thread = GetCurrentThreadId(); + + // event loop for (;;) { // wait for and get the next event MSG msg; @@ -151,101 +154,6 @@ void CMSWindowsScreen::getEvent(MSG* msg) const GetMessage(msg, NULL, 0, 0); } -void CMSWindowsScreen::getDisplayClipboard( - IClipboard* clipboard, - HWND requestor) const -{ -/* FIXME - assert(clipboard != NULL); - assert(requestor != None); - - // clear the clipboard object - clipboard->open(); - - // block others from using the display while we get the clipboard. - // in particular, this prevents the event thread from stealing the - // selection notify event we're expecting. - CLock lock(&m_mutex); - - // use PRIMARY selection as the "clipboard" - Atom selection = XA_PRIMARY; - - // ask the selection for all the formats it has. some owners return - // the TARGETS atom and some the ATOM atom when TARGETS is requested. - Atom format; - CString targets; - if (getDisplayClipboard(selection, m_atomTargets, - requestor, timestamp, &format, &targets) && - (format == m_atomTargets || format == XA_ATOM)) { - // get each target (that we can interpret). some owners return - // some targets multiple times in the list so don't try to get - // those multiple times. - const Atom* targetAtoms = reinterpret_cast(targets.data()); - const SInt32 numTargets = targets.size() / sizeof(Atom); - std::set clipboardFormats; - std::set targets; - log((CLOG_DEBUG "selection has %d targets", numTargets)); - for (SInt32 i = 0; i < numTargets; ++i) { - Atom format = targetAtoms[i]; - log((CLOG_DEBUG " source target %d", format)); - - // skip already handled targets - if (targets.count(format) > 0) { - log((CLOG_DEBUG " skipping handled target %d", format)); - continue; - } - - // mark this target as done - targets.insert(format); - - // determine the expected clipboard format - IClipboard::EFormat expectedFormat = getFormat(format); - - // if we can use the format and we haven't already retrieved - // it then get it - if (expectedFormat == IClipboard::kNumFormats) { - log((CLOG_DEBUG " no format for target", format)); - continue; - } - if (clipboardFormats.count(expectedFormat) > 0) { - log((CLOG_DEBUG " skipping handled format %d", expectedFormat)); - continue; - } - - CString data; - if (!getDisplayClipboard(selection, format, - requestor, timestamp, &format, &data)) { - log((CLOG_DEBUG " no data for target", format)); - continue; - } - - // use the actual format, not the expected - IClipboard::EFormat actualFormat = getFormat(format); - if (actualFormat == IClipboard::kNumFormats) { - log((CLOG_DEBUG " no format for target", format)); - continue; - } - if (clipboardFormats.count(actualFormat) > 0) { - log((CLOG_DEBUG " skipping handled format %d", actualFormat)); - continue; - } - - // add to clipboard and note we've done it - clipboard->add(actualFormat, data); - clipboardFormats.insert(actualFormat); - } - } - else { - // non-ICCCM conforming selection owner. try TEXT format. - // FIXME - log((CLOG_DEBUG "selection doesn't support TARGETS, format is %d", format)); - } - - // done with clipboard - clipboard->close(); -*/ -} - LRESULT CALLBACK CMSWindowsScreen::wndProc( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) diff --git a/synergy/CMSWindowsScreen.h b/synergy/CMSWindowsScreen.h index 9e1590a8..a916beb3 100644 --- a/synergy/CMSWindowsScreen.h +++ b/synergy/CMSWindowsScreen.h @@ -46,9 +46,6 @@ protected: // wait for and get the next message. cancellable. void getEvent(MSG*) const; - // copy the clipboard contents to clipboard - void getDisplayClipboard(IClipboard* clipboard, HWND) const; - // called by doRun() to handle an event. return true to skip // event translation and dispatch. virtual bool onPreTranslate(MSG*) = 0; diff --git a/synergy/CProtocolUtil.cpp b/synergy/CProtocolUtil.cpp index 5c736efa..fb0543a7 100644 --- a/synergy/CProtocolUtil.cpp +++ b/synergy/CProtocolUtil.cpp @@ -84,8 +84,9 @@ void CProtocolUtil::readf(IInputStream* stream, case 2: // 2 byte integer *reinterpret_cast(v) = + static_cast( (static_cast(buffer[0]) << 8) | - static_cast(buffer[1]); + static_cast(buffer[1])); log((CLOG_DEBUG2 "readf: read %d byte integer: %d (0x%x)", len, *reinterpret_cast(v), *reinterpret_cast(v))); break;