From: Po Lu Date: Sun, 17 Apr 2022 13:23:35 +0000 (+0800) Subject: Handle bad actual actions during DND X-Git-Tag: emacs-29.0.90~1931^2~458 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=ec025f22ef9642aa6d1d8b4ced6820aeb708d7d7;p=emacs.git Handle bad actual actions during DND * src/xterm.c (x_dnd_begin_drag_and_drop): Behave correctly when the target gives us a bad atom. --- diff --git a/src/xterm.c b/src/xterm.c index ab4dcc3841a..4241b4d0d6b 100644 --- a/src/xterm.c +++ b/src/xterm.c @@ -9844,10 +9844,18 @@ x_dnd_begin_drag_and_drop (struct frame *f, Time time, Atom xaction, if (x_dnd_action != None) { block_input (); + x_catch_errors (FRAME_X_DISPLAY (f)); atom_name = XGetAtomName (FRAME_X_DISPLAY (f), x_dnd_action); - action = intern (atom_name); - XFree (atom_name); + x_uncatch_errors (); + + if (atom_name) + { + action = intern (atom_name); + XFree (atom_name); + } + else + action = Qnil; unblock_input (); return action;