diff --git a/src/lib/deskflow/Clipboard.cpp b/src/lib/deskflow/Clipboard.cpp index a49567d41..756730faa 100644 --- a/src/lib/deskflow/Clipboard.cpp +++ b/src/lib/deskflow/Clipboard.cpp @@ -21,6 +21,7 @@ Clipboard::Clipboard() bool Clipboard::empty() { + std::scoped_lock lock{m_mutex}; if (!m_open) { LOG_WARN("cannot empty clipboard, not open"); return false; @@ -43,6 +44,7 @@ bool Clipboard::empty() void Clipboard::add(Format format, const std::string &data) { + std::scoped_lock lock{m_mutex}; if (!m_open) { LOG_WARN("cannot add to clipboard, not open"); return; @@ -60,6 +62,7 @@ void Clipboard::add(Format format, const std::string &data) bool Clipboard::open(Time time) const { + std::scoped_lock lock{m_mutex}; if (m_open) { LOG_DEBUG("skipping clipboard open, already open"); return true; @@ -73,6 +76,7 @@ bool Clipboard::open(Time time) const void Clipboard::close() const { + std::scoped_lock lock{m_mutex}; if (!m_open) { LOG_WARN("clipboard is not open"); } @@ -86,6 +90,7 @@ Clipboard::Time Clipboard::getTime() const bool Clipboard::has(Format format) const { + std::scoped_lock lock{m_mutex}; if (!m_open) { LOG_WARN("cannot check for clipboard format, not open"); return false; @@ -95,6 +100,7 @@ bool Clipboard::has(Format format) const std::string Clipboard::get(Format format) const { + std::scoped_lock lock{m_mutex}; if (!m_open) { LOG_WARN("cannot get clipboard format, not open"); return ""; diff --git a/src/lib/deskflow/Clipboard.h b/src/lib/deskflow/Clipboard.h index f886786d6..73bc66773 100644 --- a/src/lib/deskflow/Clipboard.h +++ b/src/lib/deskflow/Clipboard.h @@ -9,6 +9,8 @@ #include "deskflow/IClipboard.h" +#include + //! Memory buffer clipboard /*! This class implements a clipboard that stores data in memory. @@ -53,6 +55,7 @@ public: private: mutable bool m_open = false; + mutable std::mutex m_mutex; mutable Time m_time; bool m_owner = false; Time m_timeOwned;