From cf78bc0515fa38a6cc570afd7a7e0000bdcda09e Mon Sep 17 00:00:00 2001 From: citrons Date: Thu, 5 Jun 2025 14:56:22 -0500 Subject: clipboard support --- client/clipboard/clipboard.go | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) (limited to 'client/clipboard/clipboard.go') diff --git a/client/clipboard/clipboard.go b/client/clipboard/clipboard.go index b110378..b81b500 100644 --- a/client/clipboard/clipboard.go +++ b/client/clipboard/clipboard.go @@ -1,4 +1,4 @@ -package tui +package clipboard import ( "sync" @@ -12,23 +12,30 @@ type Clipboard interface { type virtualClipboard string func (clip *virtualClipboard) Copy(text string) { - *clip = text + *clip = virtualClipboard(text) } var ch = make(chan string) func (clip *virtualClipboard) Paste() <-chan string { go func() { - ch <- *clip + ch <- string(*clip) }() return ch } -var clipboard Clipboard = virtualClipboard {} -var mut RWMutex +var defaultClipboard virtualClipboard +var clipboard Clipboard = &defaultClipboard +var mut sync.RWMutex -func Get() { +func Get() Clipboard { mut.RLock() c := clipboard mut.RUnlock() return c } + +func Set(c Clipboard) { + mut.Lock() + clipboard = c + mut.Unlock() +} -- cgit v1.2.3