From 7c23dd4468eb42dbe7e3f40339c6fda9f9905d0e Mon Sep 17 00:00:00 2001 From: Chong Yidong Date: Sun, 15 Aug 2010 22:33:17 -0400 Subject: Let all active regions set the primary selection. This includes both temporarily active regions (mouse drag and shift-select) and those made with C-SPC and cursor motion. * lisp/cus-start.el: Change defcustom for select-active-regions. * lisp/simple.el (deactivate-mark): If select-active-regions is `only', only set selection for temporarily active regions. * src/insdel.c (prepare_to_modify_buffer): Handle `only' value of select-active-regions. * src/keyboard.c (command_loop_1): Avoid setting selection twice, since it's done in deactivate-mark as well. (Vselect_active_regions): Replace `lazy' value with `only', meaning to only set PRIMARY for temporarily active regions. --- lisp/ChangeLog | 7 +++++++ lisp/cus-start.el | 4 ++-- lisp/simple.el | 4 +++- 3 files changed, 12 insertions(+), 3 deletions(-) (limited to 'lisp') diff --git a/lisp/ChangeLog b/lisp/ChangeLog index dfe19e994ce..aad818634b9 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,10 @@ +2010-08-16 Chong Yidong + + * simple.el (deactivate-mark): If select-active-regions is `only', + only set selection for temporarily active regions. + + * cus-start.el: Change defcustom for select-active-regions. + 2010-08-15 Chong Yidong * mouse.el (mouse--drag-set-mark-and-point): New function. diff --git a/lisp/cus-start.el b/lisp/cus-start.el index 10214d39a0d..ec05eb7c9b0 100644 --- a/lisp/cus-start.el +++ b/lisp/cus-start.el @@ -198,8 +198,8 @@ Leaving \"Default\" unchecked is equivalent with specifying a default of (help-event-list keyboard (repeat (sexp :format "%v"))) (menu-prompting menu boolean) (select-active-regions killing - (choice (const :tag "lazy" lazy) - (const :tag "always" t) + (choice (const :tag "always" t) + (const :tag "only shift-selection or mouse-drag" only) (const :tag "off" nil)) "24.1") (suggest-key-bindings keyboard (choice (const :tag "off" nil) diff --git a/lisp/simple.el b/lisp/simple.el index 0ac199ea2f6..5a2c9e70ad6 100644 --- a/lisp/simple.el +++ b/lisp/simple.el @@ -3674,7 +3674,9 @@ Unless FORCE is non-nil, this function does nothing if Transient Mark mode is disabled. This function also runs `deactivate-mark-hook'." (when (or transient-mark-mode force) - (when (and select-active-regions + (when (and (if (eq select-active-regions 'only) + (eq (car-safe transient-mark-mode) 'only) + select-active-regions) (region-active-p) (display-selections-p)) ;; The var `saved-region-selection', if non-nil, is the text in -- cgit v1.2.3