app: gracefully handle Windows clipboard read errors

Signed-off-by: Jeff Williams <info@anvil-editor.net>
This commit is contained in:
Jeff Williams
2026-06-26 08:20:23 -04:00
committed by Elias Naur
parent 30dc7ff294
commit 3eab806940
+12 -2
View File
@@ -699,7 +699,13 @@ func (w *window) ReadClipboard() {
w.readClipboard()
}
func (w *window) readClipboard() error {
func (w *window) readClipboard() (cerr error) {
defer func() {
if cerr != nil {
w.processDataEvent("")
}
}()
if err := windows.OpenClipboard(w.hwnd); err != nil {
return err
}
@@ -714,13 +720,17 @@ func (w *window) readClipboard() error {
}
defer windows.GlobalUnlock(mem)
content := gowindows.UTF16PtrToString((*uint16)(unsafe.Pointer(ptr)))
w.processDataEvent(content)
return nil
}
func (w *window) processDataEvent(content string) {
w.ProcessEvent(transfer.DataEvent{
Type: "application/text",
Open: func() io.ReadCloser {
return io.NopCloser(strings.NewReader(content))
},
})
return nil
}
func (w *window) Configure(options []Option) {