refactor: Use mutex to protect m_open / m_time in EiClipboard

This commit is contained in:
sithlord48 2026-06-18 20:32:54 -04:00 committed by Chris Rizzitello
parent 0042b43bac
commit 698ebc30b3
2 changed files with 8 additions and 0 deletions

View file

@ -18,6 +18,7 @@ EiClipboard::EiClipboard(ClipboardID id) : m_id(id)
bool EiClipboard::empty()
{
std::scoped_lock lock{m_mutex};
if (!m_open) {
LOG_WARN("cannot empty clipboard, not open");
return false;
@ -40,6 +41,7 @@ bool EiClipboard::empty()
void EiClipboard::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;
@ -57,6 +59,7 @@ void EiClipboard::add(Format format, const std::string &data)
bool EiClipboard::open(Time time) const
{
std::scoped_lock lock{m_mutex};
if (m_open) {
LOG_DEBUG("skipping clipboard open, already open");
return true;
@ -70,6 +73,7 @@ bool EiClipboard::open(Time time) const
void EiClipboard::close() const
{
std::scoped_lock lock{m_mutex};
if (!m_open) {
LOG_WARN("clipboard is not open");
}
@ -83,6 +87,7 @@ EiClipboard::Time EiClipboard::getTime() const
bool EiClipboard::has(Format format) const
{
std::scoped_lock lock{m_mutex};
if (!m_open) {
LOG_WARN("cannot check for clipboard format, not open");
return false;
@ -92,6 +97,7 @@ bool EiClipboard::has(Format format) const
std::string EiClipboard::get(Format format) const
{
std::scoped_lock lock{m_mutex};
if (!m_open) {
LOG_WARN("cannot get clipboard format, not open");
return "";

View file

@ -8,6 +8,7 @@
#include "deskflow/ClipboardTypes.h"
#include "deskflow/IClipboard.h"
#include <mutex>
namespace deskflow {
@ -43,6 +44,7 @@ private:
ClipboardID m_id;
mutable bool m_open = false;
mutable Time m_time = 0;
mutable std::mutex m_mutex;
bool m_owner = false;
Time m_timeOwned = 0;
bool m_added[static_cast<int>(Format::TotalFormats)] = {false, false, false};