mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2024-11-23 07:19:15 +00:00
(keyboard-quit): Run deactivate-mark-hook.
(kill-ring-save): If quit happens while cursor is bounced,
This commit is contained in:
parent
7492a21ec2
commit
66050f1032
@ -1059,21 +1059,35 @@ system cut and paste."
|
||||
(interactive "r")
|
||||
(copy-region-as-kill beg end)
|
||||
(if (interactive-p)
|
||||
(save-excursion
|
||||
(let ((other-end (if (= (point) beg) end beg)))
|
||||
(if (pos-visible-in-window-p other-end (selected-window))
|
||||
(let ((omark (mark t)))
|
||||
(set-marker (mark-marker) (point) (current-buffer))
|
||||
(goto-char other-end)
|
||||
(sit-for 1))
|
||||
(let* ((killed-text (current-kill 0))
|
||||
(message-len (min (length killed-text) 40)))
|
||||
(if (= (point) beg)
|
||||
;; Don't say "killed"; that is misleading.
|
||||
(message "Saved text until \"%s\""
|
||||
(substring killed-text (- message-len)))
|
||||
(message "Saved text from \"%s\""
|
||||
(substring killed-text 0 message-len)))))))))
|
||||
(let ((other-end (if (= (point) beg) end beg))
|
||||
(opoint (point))
|
||||
;; Inhibit quitting so we can make a quit here
|
||||
;; look like a C-g typed as a command.
|
||||
(inhibit-quit t))
|
||||
(if (pos-visible-in-window-p other-end (selected-window))
|
||||
(progn
|
||||
;; Swap point and mark.
|
||||
(set-marker (mark-marker) (point) (current-buffer))
|
||||
(goto-char other-end)
|
||||
(sit-for 1)
|
||||
;; Swap back.
|
||||
(set-marker (mark-marker) other-end (current-buffer))
|
||||
(goto-char opoint)
|
||||
;; If user quit, deactivate the mark
|
||||
;; as C-g would as a command.
|
||||
(and quit-flag transient-mark-mode mark-active
|
||||
(progn
|
||||
(message "foo")
|
||||
(setq mark-active nil)
|
||||
(run-hooks 'deactivate-mark-hook))))
|
||||
(let* ((killed-text (current-kill 0))
|
||||
(message-len (min (length killed-text) 40)))
|
||||
(if (= (point) beg)
|
||||
;; Don't say "killed"; that is misleading.
|
||||
(message "Saved text until \"%s\""
|
||||
(substring killed-text (- message-len)))
|
||||
(message "Saved text from \"%s\""
|
||||
(substring killed-text 0 message-len))))))))
|
||||
|
||||
(defun append-next-kill ()
|
||||
"Cause following command, if it kills, to append to previous kill."
|
||||
@ -2092,8 +2106,10 @@ in the mode line."
|
||||
During execution of Lisp code, this character causes a quit directly.
|
||||
At top-level, as an editor command, this simply beeps."
|
||||
(interactive)
|
||||
(if transient-mark-mode
|
||||
(setq mark-active nil))
|
||||
(and transient-mark-mode mark-active
|
||||
(progn
|
||||
(setq mark-active nil)
|
||||
(run-hooks 'deactivate-mark-hook)))
|
||||
(signal 'quit nil))
|
||||
|
||||
(define-key global-map "\C-g" 'keyboard-quit)
|
||||
|
Loading…
Reference in New Issue
Block a user