From: Po Lu Date: Wed, 23 Mar 2022 03:30:13 +0000 (+0800) Subject: Handle quitting correctly during interprogram drag-and-drop X-Git-Tag: emacs-29.0.90~1931^2~968 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=8aff4c0a366f060595dd6360e7a008585b7eb405;p=emacs.git Handle quitting correctly during interprogram drag-and-drop * lisp/mouse.el (mouse-drag-and-drop-region): Handle quit correctly by exiting the cross program drag and drop. --- diff --git a/lisp/mouse.el b/lisp/mouse.el index 30b19510a46..381fc0c47e8 100644 --- a/lisp/mouse.el +++ b/lisp/mouse.el @@ -3119,13 +3119,15 @@ is copied instead of being cut." (mouse-drag-and-drop-region-hide-tooltip) (gui-set-selection 'XdndSelection value-selection) (let ((drag-action-or-frame - (x-begin-drag '("UTF8_STRING" "text/plain" - "text/plain;charset=utf-8" - "STRING" "TEXT" "COMPOUND_TEXT") - (if mouse-drag-and-drop-region-cut-when-buffers-differ - 'XdndActionMove - 'XdndActionCopy) - (posn-window (event-end event)) t))) + (condition-case nil + (x-begin-drag '("UTF8_STRING" "text/plain" + "text/plain;charset=utf-8" + "STRING" "TEXT" "COMPOUND_TEXT") + (if mouse-drag-and-drop-region-cut-when-buffers-differ + 'XdndActionMove + 'XdndActionCopy) + (posn-window (event-end event)) t) + (quit nil)))) (when (framep drag-action-or-frame) (throw 'drag-again nil))