From 24fa2722c384fced956e97b8aecfb95e6d5ec122 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20GINIER?= Date: Wed, 14 May 2025 06:58:28 +0200 Subject: [PATCH] MacOS: fix cocoa clipboard text Adjust Cocoa_SetClipboardData so that SetClipboardText text can be pasted outside SDL (cherry picked from commit 945eb6dc871177f454618987e1127e449fc1191d) --- src/video/cocoa/SDL_cocoaclipboard.m | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/video/cocoa/SDL_cocoaclipboard.m b/src/video/cocoa/SDL_cocoaclipboard.m index 42c2ad64ba..7039ff6ad5 100644 --- a/src/video/cocoa/SDL_cocoaclipboard.m +++ b/src/video/cocoa/SDL_cocoaclipboard.m @@ -158,6 +158,17 @@ bool Cocoa_SetClipboardData(SDL_VideoDevice *_this) @autoreleasepool { SDL_CocoaVideoData *data = (__bridge SDL_CocoaVideoData *)_this->internal; NSPasteboard *pasteboard = [NSPasteboard generalPasteboard]; + + // SetClipboardText specialization so text is available after the app quits + if (_this->clipboard_callback && _this->num_clipboard_mime_types == 1) { + if (SDL_strncmp(_this->clipboard_mime_types[0], "text/plain;charset=utf-8", 24) == 0) { + [pasteboard declareTypes:@[ NSPasteboardTypeString ] owner:nil]; + [pasteboard setString:@((char *)_this->clipboard_userdata) forType:NSPasteboardTypeString]; + data.clipboard_count = [pasteboard changeCount]; + return true; + } + } + NSPasteboardItem *newItem = [NSPasteboardItem new]; NSMutableArray *utiTypes = [NSMutableArray new]; Cocoa_PasteboardDataProvider *provider = [[Cocoa_PasteboardDataProvider alloc] initWith: _this->clipboard_callback userData: _this->clipboard_userdata];