[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: master 2021835326 2/3: Implement `return-frame' for DND on NS
From: |
Po Lu |
Subject: |
Re: master 2021835326 2/3: Implement `return-frame' for DND on NS |
Date: |
Tue, 31 May 2022 21:07:23 +0800 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/28.0.91 (gnu/linux) |
Po Lu via Mailing list for Emacs changes <emacs-diffs@gnu.org> writes:
> +#ifdef NS_IMPL_COCOA
> +- (void) draggedImage: (NSImage *) dragged_image
> + movedTo: (NSPoint) screen_point
> +{
> + NSInteger window_number;
> + NSWindow *w;
> +
> + if (dnd_mode == RETURN_FRAME_NEVER)
> + return;
> +
> + window_number = [NSWindow windowNumberAtPoint: [NSEvent mouseLocation]
> + belowWindowWithWindowNumber: 0];
> + w = [NSApp windowWithWindowNumber: window_number];
> +
> + if (!w || w != self)
> + dnd_mode = RETURN_FRAME_NOW;
> +
> + if (dnd_mode != RETURN_FRAME_NOW
> + || ![[w delegate] isKindOfClass: [EmacsView class]])
> + return;
> +
> + dnd_return_frame = ((EmacsView *) [w delegate])->emacsframe;
> +
> + /* FIXME: there must be a better way to leave the event loop. */
> + [NSException raise: @""
> + format: @"Must return DND frame"];
> +}
> +#endif
This works (and there's nothing in the documentation forbidding it), but
prints an ugly warning message to stdout every time the exception is
raised. Does anyone know of a better way to stop an NS drag-and-drop
operation inside one of the drag source callbacks?
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Re: master 2021835326 2/3: Implement `return-frame' for DND on NS,
Po Lu <=