Fix enumeration of pasteboard items in the source

This commit is contained in:
Kovid Goyal
2026-02-22 13:32:55 +05:30
parent 531fb3e1b1
commit ca43d57cdf

View File

@@ -4081,7 +4081,6 @@ _glfwPlatformStartDrag(_GLFWwindow* window, const GLFWimage* thumbnail) {@autore
NSDraggingSession *s = [v beginDraggingSessionWithItems:dragItems event:event source:[v draggingSource]]; NSDraggingSession *s = [v beginDraggingSessionWithItems:dragItems event:event source:[v draggingSource]];
_glfw.ns.drag_session = [s retain]; _glfw.ns.drag_session = [s retain];
s.draggingFormation = NSDraggingFormationNone;
_glfw.ns.drag_view = [v retain]; _glfw.ns.drag_view = [v retain];
return 0; return 0;
}} }}
@@ -4219,11 +4218,10 @@ _glfwPlatformChangeDragImage(const GLFWimage *thumbnail, int make_toplevel) {@au
(void)make_toplevel; (void)make_toplevel;
if (!_glfw.ns.drag_session || !_glfw.ns.drag_view) return 0; if (!_glfw.ns.drag_session || !_glfw.ns.drag_view) return 0;
_GLFWwindow *window = _glfwWindowForId(_glfw.drag.window_id); _GLFWwindow *window = _glfwWindowForId(_glfw.drag.window_id);
NSArray *classes = @[[NSPasteboardItem class], [NSFilePromiseProvider class]];
[((NSDraggingSession*)_glfw.ns.drag_session) [((NSDraggingSession*)_glfw.ns.drag_session)
enumerateDraggingItemsWithOptions:0 enumerateDraggingItemsWithOptions:0
forView:(NSView*)_glfw.ns.drag_view forView:(NSView*)_glfw.ns.drag_view
classes:classes classes:@[[NSPasteboardItem class]]
searchOptions:@{} searchOptions:@{}
usingBlock:^(NSDraggingItem *draggingItem, NSInteger idx, BOOL *stop) { usingBlock:^(NSDraggingItem *draggingItem, NSInteger idx, BOOL *stop) {
if (idx == 0) { if (idx == 0) {