* lisp/emulation/cua-base.el (cua--pre-command-handler-1): Don't activate

the region on shift if the binding is already shifted.

Fixes: debbugs:11221
This commit is contained in:
Stefan Monnier 2012-04-13 09:32:37 -04:00
parent 031fabfc1a
commit e75e89ba41
2 changed files with 6 additions and 16 deletions

View file

@ -1,3 +1,8 @@
2012-04-13 Stefan Monnier <monnier@iro.umontreal.ca>
* emulation/cua-base.el (cua--pre-command-handler-1): Don't activate
the region on shift if the binding is already shifted (bug#11221).
2012-04-12 Glenn Morris <rgm@gnu.org>
* mail/mailpost.el: Move to obsolete/.

View file

@ -1246,22 +1246,7 @@ If ARG is the atom `-', scroll upward by nearly full screen."
;; (and region not started with C-SPC).
;; If rectangle is active, expand rectangle in specified direction and
;; ignore the movement.
((if window-system
;; Shortcut for window-system, assuming that input-decode-map is empty.
(memq 'shift (event-modifiers
(aref (this-single-command-raw-keys) 0)))
(or
;; Check if the final key-sequence was shifted.
(memq 'shift (event-modifiers
(aref (this-single-command-keys) 0)))
;; If not, maybe the raw key-sequence was mapped by input-decode-map
;; to a shifted key (and then mapped down to its unshifted form).
(let* ((keys (this-single-command-raw-keys))
(ev (lookup-key input-decode-map keys)))
(or (and (vector ev) (memq 'shift (event-modifiers (aref ev 0))))
;; Or maybe, the raw key-sequence was not an escape sequence
;; and was shifted (and then mapped down to its unshifted form).
(memq 'shift (event-modifiers (aref keys 0)))))))
(this-command-keys-shift-translated
(unless mark-active
(push-mark-command nil t))
(setq cua--last-region-shifted t)