bool CXWindowsClipboard::open(Time time) const { assert(!m_open); LOG((CLOG_DEBUG "open clipboard %d", m_id)); // assume not motif m_motif = false; // lock clipboard if (m_id == kClipboardClipboard) { if (!motifLockClipboard()) { return false; } // check if motif owns the selection. unlock motif clipboard // if it does not. m_motif = motifOwnsClipboard(); LOG((CLOG_DEBUG1 "motif does %sown clipboard", m_motif ? "" : "not ")); if (!m_motif) { motifUnlockClipboard(); } } // now open m_open = true; m_time = time; // be sure to flush the cache later if it's dirty m_checkCache = true; return true; }
void XWindowsClipboard::close() const { assert(m_open); LOG((CLOG_DEBUG "close clipboard %d", m_id)); // unlock clipboard if (m_motif) { motifUnlockClipboard(); } m_motif = false; m_open = false; }