diff options
author | Po Lu <luangruo@yahoo.com> | 2022-03-26 10:15:53 +0800 |
---|---|---|
committer | Po Lu <luangruo@yahoo.com> | 2022-03-26 10:15:53 +0800 |
commit | 5359062be603e22d1ee07c21b0840fdb98a704a3 (patch) | |
tree | f278bf1a27d04b21d19703d2995478c565db76ad /lisp/dired.el | |
parent | 21ecf6b24d0549a9f27bcab51dbd8c8b1a37ef86 (diff) | |
download | emacs-5359062be603e22d1ee07c21b0840fdb98a704a3.tar.gz emacs-5359062be603e22d1ee07c21b0840fdb98a704a3.tar.bz2 emacs-5359062be603e22d1ee07c21b0840fdb98a704a3.zip |
Avoid ClientMessage overhead when dragging stuff to other frames
* lisp/dired.el (dired-mouse-drag): Handle correctly dragging
from dired buffers in nonselected windows.
* lisp/x-dnd.el (x-dnd-handle-drag-n-drop-event): Understand new
client message type.
* src/xterm.c (x_dnd_send_enter, x_dnd_send_position)
(x_dnd_send_leave): Ignore if window is the top window of a
frame.
(x_dnd_send_drop): Send special DND event in that case.
Diffstat (limited to 'lisp/dired.el')
-rw-r--r-- | lisp/dired.el | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/lisp/dired.el b/lisp/dired.el index c5e389c9ce1..3c37a887baf 100644 --- a/lisp/dired.el +++ b/lisp/dired.el @@ -1704,7 +1704,8 @@ see `dired-use-ls-dired' for more details.") (when mark-active (deactivate-mark)) (save-excursion - (goto-char (posn-point (event-end event))) + (with-selected-window (posn-window (event-end event)) + (goto-char (posn-point (event-end event)))) (track-mouse (let ((new-event (read-event))) (if (not (eq (event-basic-type new-event) 'mouse-movement)) @@ -1715,7 +1716,9 @@ see `dired-use-ls-dired' for more details.") (condition-case nil (progn (gui-backend-set-selection 'XdndSelection - (dired-file-name-at-point)) + (with-selected-window (posn-window + (event-end event)) + (dired-file-name-at-point))) (x-begin-drag '("text/uri-list" "text/x-dnd-username") (if (eq 'dired-mouse-drag-files 'link) |