Change `select-active-region' mechanics.
authorChong Yidong <cyd@stupidchicken.com>
Sat, 7 Aug 2010 19:39:04 +0000 (15:39 -0400)
committerChong Yidong <cyd@stupidchicken.com>
Sat, 7 Aug 2010 19:39:04 +0000 (15:39 -0400)
commit9852377f7860205876bbea901d534213d3cca639
tree07f057a0f550cd3906fce8234b8baf9c69b50d79
parentd064e6a60d02274435b8e44743ade46e4fa65a20
Change `select-active-region' mechanics.
Save region text prior to buffer modification.
Set window selection lazily, during `deactivate-mark' or after each
command when the region is temporarily active.

* lisp/cus-start.el: Add custom declaration for select-active-regions.

* lisp/mouse.el (mouse-drag-track): Remove hacks to deal with old
select-active-regions implementation.
(mouse-yank-at-click): Doc fix.

* lisp/simple.el (select-active-regions): Move to keyboard.c.
(deactivate-mark): Used saved-region-selection.
(select-active-region): Function removed.
(activate-mark, set-mark, push-mark-command)
(handle-shift-selection): Don't call it.
(keyboard-quit): Avoid adding the region to the window selection.

* src/insdel.c (prepare_to_modify_buffer): Save active region text to
Vsaved_region_selection.

* src/keyboard.c (Vselect_active_regions): Move from simple.el.
(Vsaved_region_selection, Qx_set_selection, QPRIMARY, Qlazy): New
vars.
(command_loop_1): Set window selection prior to deactivating the
mark.

* src/xselect.c (QPRIMARY): Move to keyboard.c.
etc/NEWS
lisp/ChangeLog
lisp/cus-start.el
lisp/mouse.el
lisp/simple.el
src/ChangeLog
src/insdel.c
src/keyboard.c
src/xselect.c