macOS: When pasting text and the clipboard has a filesystem path, paste the full path instead of the text, which is sometimes just the file name
Fixes #5142
This commit is contained in:
parent
48bb43a2c4
commit
cabfcbcb69
@ -46,6 +46,9 @@ Detailed list of changes
|
|||||||
|
|
||||||
- ssh kitten: Fix bash not being executed as a login shell since kitty 0.25.0 (:iss:`5130`)
|
- ssh kitten: Fix bash not being executed as a login shell since kitty 0.25.0 (:iss:`5130`)
|
||||||
|
|
||||||
|
- macOS: When pasting text and the clipboard has a filesystem path, paste the
|
||||||
|
full path instead of the text, which is sometimes just the file name (:pull:`5142`)
|
||||||
|
|
||||||
|
|
||||||
0.25.1 [2022-05-26]
|
0.25.1 [2022-05-26]
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|||||||
@ -2497,10 +2497,30 @@ const char* _glfwPlatformGetClipboardString(void)
|
|||||||
"Cocoa: Failed to retrieve object from pasteboard");
|
"Cocoa: Failed to retrieve object from pasteboard");
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
free(_glfw.ns.clipboardString); _glfw.ns.clipboardString = NULL;
|
||||||
|
|
||||||
free(_glfw.ns.clipboardString);
|
NSDictionary* options = @{NSPasteboardURLReadingFileURLsOnlyKey:@YES};
|
||||||
_glfw.ns.clipboardString = _glfw_strdup([object UTF8String]);
|
NSArray* objs = [pasteboard readObjectsForClasses:@[[NSURL class], [NSString class]] options:options];
|
||||||
|
if (!objs) return NULL;
|
||||||
|
const NSUInteger count = [objs count];
|
||||||
|
if (count) {
|
||||||
|
NSMutableString *path_list = [NSMutableString stringWithCapacity:4096]; // auto-released
|
||||||
|
const char *text = NULL;
|
||||||
|
for (NSUInteger i = 0; i < count; i++) {
|
||||||
|
id obj = objs[i];
|
||||||
|
if ([obj isKindOfClass:[NSURL class]]) {
|
||||||
|
NSURL *url = (NSURL*)obj;
|
||||||
|
if (url.fileURL && url.fileSystemRepresentation) {
|
||||||
|
if ([path_list length] > 0) [path_list appendString:@("\n")];
|
||||||
|
[path_list appendString:@(url.fileSystemRepresentation)];
|
||||||
|
}
|
||||||
|
} else if ([obj isKindOfClass:[NSString class]]) {
|
||||||
|
text = [obj UTF8String];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (path_list.length > 0) _glfw.ns.clipboardString = _glfw_strdup([path_list UTF8String]);
|
||||||
|
else if (text) _glfw.ns.clipboardString = _glfw_strdup([path_list UTF8String]);
|
||||||
|
}
|
||||||
return _glfw.ns.clipboardString;
|
return _glfw.ns.clipboardString;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user