Mercurial > emacs
changeset 109456:406b2d52ff00
Revert 2010-07-14 change to deactivate mark; minor cleanups.
* mouse.el (mouse-drag-track): Use select-active-region.
* simple.el (select-active-region): New function.
(push-mark-command, set-mark, activate-mark)
(handle-shift-selection): Use it.
(deactivate-mark): Don't check for size of region.
author | Chong Yidong <cyd@stupidchicken.com> |
---|---|
date | Sat, 17 Jul 2010 16:21:51 -0400 |
parents | 56176400910f |
children | c581eca79ab5 |
files | lisp/ChangeLog lisp/mouse.el lisp/simple.el |
diffstat | 3 files changed, 25 insertions(+), 15 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/ChangeLog Sat Jul 17 14:34:44 2010 -0400 +++ b/lisp/ChangeLog Sat Jul 17 16:21:51 2010 -0400 @@ -1,3 +1,12 @@ +2010-07-17 Chong Yidong <cyd@stupidchicken.com> + + * simple.el (select-active-region): New function. + (push-mark-command, set-mark, activate-mark) + (handle-shift-selection): Use it. + (deactivate-mark): Don't check for size of region. + + * mouse.el (mouse-drag-track): Use select-active-region. + 2010-07-17 Michael Albinus <michael.albinus@gmx.de> * net/tramp.el (tramp-get-ls-command-with-dired): Make test for
--- a/lisp/mouse.el Sat Jul 17 14:34:44 2010 -0400 +++ b/lisp/mouse.el Sat Jul 17 16:21:51 2010 -0400 @@ -1027,9 +1027,7 @@ ;; For `select-active-regions' non-nil, ensure that ;; further alterations of the region (e.g. via ;; shift-selection) continue to update PRIMARY. - (and select-active-regions - (display-selections-p) - (x-set-selection 'PRIMARY (current-buffer)))) + (select-active-region)) ;; If point hasn't moved, run the binding of the ;; terminating up-event.
--- a/lisp/simple.el Sat Jul 17 14:34:44 2010 -0400 +++ b/lisp/simple.el Sat Jul 17 16:21:51 2010 -0400 @@ -3687,7 +3687,6 @@ mark-active (display-selections-p) (x-selection-owner-p 'PRIMARY) - (not (eq (region-beginning) (region-end))) (x-set-selection 'PRIMARY (buffer-substring-no-properties (region-beginning) (region-end)))) (if (and (null force) @@ -3708,9 +3707,13 @@ (setq mark-active t) (unless transient-mark-mode (setq transient-mark-mode 'lambda)) - (when (and select-active-regions - (display-selections-p)) - (x-set-selection 'PRIMARY (current-buffer))))) + (select-active-region))) + +(defsubst select-active-region () + "Set the PRIMARY X selection if `select-active-regions' is non-nil." + (and select-active-regions + (display-selections-p) + (x-set-selection 'PRIMARY (current-buffer)))) (defun set-mark (pos) "Set this buffer's mark to POS. Don't use this function! @@ -3733,9 +3736,7 @@ (progn (setq mark-active t) (run-hooks 'activate-mark-hook) - (when (and select-active-regions - (display-selections-p)) - (x-set-selection 'PRIMARY (current-buffer))) + (select-active-region) (set-marker (mark-marker) pos (current-buffer))) ;; Normally we never clear mark-active except in Transient Mark mode. ;; But when we actually clear out the mark value too, we must @@ -3819,8 +3820,7 @@ (push-mark nil nomsg t) (setq mark-active t) (run-hooks 'activate-mark-hook) - (and select-active-regions (display-selections-p) - (x-set-selection 'PRIMARY (current-buffer))) + (select-active-region) (unless nomsg (message "Mark activated"))))) @@ -4008,9 +4008,12 @@ deactivate it, and restore the variable `transient-mark-mode' to its earlier value." (cond ((and shift-select-mode this-command-keys-shift-translated) - (unless (and mark-active - (eq (car-safe transient-mark-mode) 'only)) - (setq transient-mark-mode + (if (and mark-active + (eq (car-safe transient-mark-mode) 'only)) + ;; Another program may have grabbed the selection; make + ;; sure we get it back now. + (select-active-region) + (setq transient-mark-mode (cons 'only (unless (eq transient-mark-mode 'lambda) transient-mark-mode)))