Subject: bug#11575: 24.1.50; rev 107888 breaks S-mouse mark region in cua-mode

From: Dominic Jänichen <[email-masked]>
Date: Mon, 28 May 2012 20:42:57 +0000 (UTC)

I use cua-mode in emacs (trunk) and do

;; shift + click select region
 (define-key global-map (kbd "<S-down-mouse-1>") 'ignore) ; turn off font 
dialog
 (define-key global-map (kbd "<S-mouse-1>") 'mouse-set-point)
 (put 'mouse-set-point 'CUA 'move)
 (cua-mode t)

to be able to use S-mouse-1 to select a region. I recently found this 
behaviour broken. The mark gets set but no region is created.

I traced it back to revision 107888 (* lisp/emulation/cua-base.el (cua--
pre-command-handler-1): Don't activate the region on shift if the binding 
is already shifted.) that fixes http://debbugs.gnu.org/cgi/bugreport.cgi?
bug=11221 .
Inverse cherry picking this revision indeed restores previous behavior.

In GNU Emacs 24.1.50.4 (x86_64-unknown-linux-gnu, GTK+ Version 3.4.2)
 of 2012-05-28 on worker
Bzr revision: 108409 dominic@worker-20120528171605-z6jt4yid7xumj1t1
Windowing system distributor `The X.Org Foundation', version 11.0.11103000
Configured using:
 `configure '--with-x-toolkit=gtk3''

Important settings:
  value of $LC_ALL: nil
  value of $LC_COLLATE: nil
  value of $LC_CTYPE: nil
  value of $LC_MESSAGES: nil
  value of $LC_MONETARY: nil
  value of $LC_NUMERIC: nil
  value of $LC_TIME: nil
  value of $LANG: en_US.UTF-8
  value of $XMODIFIERS: nil
  locale-coding-system: utf-8
  default enable-multibyte-characters: t

Major mode: Emacs-Lisp

Minor modes in effect:
  TeX-PDF-mode: t
  TeX-source-correlate-mode: t
  change-cursor-mode: t
  minibuffer-depth-indicate-mode: t
  icicle-mode: t
  tabbar-mwheel-mode: t
  tabbar-mode: t
  DJ-keys-minor-mode: t
  diff-auto-refine-mode: t
  global-auto-complete-mode: t
  auto-complete-mode: t
  show-paren-mode: t
  recentf-mode: t
  msb-mode: t
  electric-layout-mode: t
  electric-pair-mode: t
  electric-indent-mode: t
  cua-mode: t
  tooltip-mode: t
  mouse-wheel-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  line-number-mode: t
  transient-mark-mode: t

Recent input:
<tab> <tab> <return> <return> <down-mouse-1> <mouse-1> 
M-x r e c o v e r <tab> <down-mouse-1> <mouse-2> <down-mouse-1> 
<mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> 
<mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> 
<mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> 
<mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> 
<mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> 
<mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> 
<mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> 
<mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> 
<mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> 
<mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> 
<mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> 
<mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> 
<mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> 
<mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> 
<mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> 
<down-mouse-1> <mouse-1> <C-end> <prior> <prior> <down-mouse-1> 
<mouse-1> <down-mouse-1> <mouse-movement> <mouse-1> 
<up> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up> 
<up> <up> <up> <up> <up> <up> <up> <up> <up> <up> <down> 
<down> <down> <up> <up> <up> <up> <up> <up> <up> <up> 
<up> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up> 
<up> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up> 
<up> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up> 
<up> <up> <prior> <prior> <down-mouse-1> <mouse-1> 
<down-mouse-1> <mouse-movement> <mouse-movement> <drag-mouse-1> 
<down-mouse-1> <mouse-1> <f1> k <S-down-mouse-1> <S-mouse-1> 
<f1> k <S-down-mouse-1> <S-mouse-1> <down-mouse-1> 
<mouse-1> C-s <help-echo> <help-echo> <help-echo> <help-echo> 
<help-echo> <help-echo> <help-echo> <help-echo> <menu-bar> 
<emacs-lisp> <emacs-byte-compile-and-load> <down-mouse-1> 
<mouse-movement> <mouse-1> <S-down-mouse-1> <S-mouse-1> 
<S-down-mouse-1> <S-mouse-1> <S-down-mouse-1> <S-mouse-1> 
<S-down-mouse-1> <S-mouse-1> <down-mouse-1> <mouse-1> 
<S-down-mouse-1> <S-mouse-1> <S-down-mouse-1> <S-mouse-1> 
<S-down-mouse-1> <S-mouse-1> <down-mouse-1> <mouse-1> 
<down-mouse-1> <mouse-movement> <mouse-1> <S-down-mouse-1> 
<S-mouse-1> <down-mouse-1> <mouse-1> <down-mouse-1> 
<mouse-1> <f1> k <down-mouse-1> <mouse-1> <S-down-mouse-1> 
<S-mouse-1> <down-mouse-1> <mouse-1> <down-mouse-1> 
<mouse-1> <home> <up> <S-down> <S-down> <S-down> <S-down> 
<S-down> C-c <timeout> <menu> e m a c s <backspace> 
s - <tab> r e <tab> <backspace> <backspace> <tab> <backspace> 
<backspace> <backspace> <backspace> <backspace> <backspace> 
<backspace> p <backspace> r e p o r t <help-echo> <down-mouse-1> 
<mouse-2>

Recent messages:
Wrote /home/XXX/.emacs.elc
Loading /home/XXX/.emacs.elc...
Turning ON Icicle mode...done
Turned ON changing cursor when Emacs is idle.
Loading /home/XXX/.emacs.elc...done
Type "q" in help window to restore its previous buffer.
Computing completion candidates... [3 times]
Displaying completion candidates...
icicle-delete-backward-char-dots: Text is read-only
Displaying completion candidates...

Load-path shadows:
/usr/local/share/emacs/site-lisp/reftex/reftex-global hides /usr/local/
share/emacs/24.1.50/lisp/textmodes/reftex-global
/usr/local/share/emacs/site-lisp/reftex/reftex-toc hides /usr/local/share/
emacs/24.1.50/lisp/textmodes/reftex-toc
/usr/local/share/emacs/site-lisp/reftex/reftex-ref hides /usr/local/share/
emacs/24.1.50/lisp/textmodes/reftex-ref
/usr/local/share/emacs/site-lisp/reftex/reftex-cite hides /usr/local/share/
emacs/24.1.50/lisp/textmodes/reftex-cite
/usr/local/share/emacs/site-lisp/reftex/reftex-vars hides /usr/local/share/
emacs/24.1.50/lisp/textmodes/reftex-vars
/usr/local/share/emacs/site-lisp/reftex/reftex-sel hides /usr/local/share/
emacs/24.1.50/lisp/textmodes/reftex-sel
/usr/local/share/emacs/site-lisp/reftex/reftex-parse hides /usr/local/
share/emacs/24.1.50/lisp/textmodes/reftex-parse
/usr/local/share/emacs/site-lisp/reftex/reftex hides /usr/local/share/
emacs/24.1.50/lisp/textmodes/reftex
/usr/local/share/emacs/site-lisp/reftex/reftex-dcr hides /usr/local/share/
emacs/24.1.50/lisp/textmodes/reftex-dcr
/usr/local/share/emacs/site-lisp/reftex/reftex-index hides /usr/local/
share/emacs/24.1.50/lisp/textmodes/reftex-index
/usr/local/share/emacs/site-lisp/reftex/reftex-auc hides /usr/local/share/
emacs/24.1.50/lisp/textmodes/reftex-auc
/usr/local/share/emacs/site-lisp/predictive/avl-tree hides /usr/local/
share/emacs/24.1.50/lisp/emacs-lisp/avl-tree

Features:
(shadow sort mail-extr emacsbug message rfc822 mml mml-sec mm-decode
mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader
sendmail rfc2047 rfc2045 ietf-drums mail-utils face-remap texmathp
vc-git compile comint ansi-color preview prv-emacs reftex-dcr reftex-auc
reftex-base reftex-vars reftex server tex-buf tex-fold disp-table
whitespace flyspell-babel flyspell ispell-multi ispell noutline outline
font-latex latex tex-style tex latexenc cursor-chg smooth-scrolling
mb-depth two-column bookmark pp icicles icicles-mode icicles-cmd2
icicles-cmd1 cus-edit icicles-mcmd help-mode view image-dired
format-spec dired icicles-fn icicles-var icicles-opt ffap url-parse
auth-source eieio gnus-util mm-util mail-prsvr password-cache url-vars
fuzzy thingatpt icicles-face icicles-mac tabbar breadcrumb byte-opt
warnings bytecomp byte-compile cconv macroexp advice help-fns
advice-preload linum redo+ minor-mode-hack etags magit-bisect
magit-key-mode assoc magit diff-mode log-edit easy-mmode ring pcvs-util
add-log vc ediff-merg ediff-diff ediff-wind ediff-help ediff-util
ediff-mult ediff-init ediff vc-dispatcher auto-complete-config
auto-complete edmacro kmacro popup paren recentf tree-widget wid-edit
easymenu msb ido electric cua-base cus-start cus-load preview-latex
tex-site auto-loads time-date tooltip ediff-hook vc-hooks
lisp-float-type mwheel x-win x-dnd tool-bar dnd fontset image regexp-opt
fringe tabulated-list newcomment lisp-mode register page menu-bar
rfn-eshadow timer select scroll-bar mouse jit-lock font-lock syntax
facemenu font-core frame cham georgian utf-8-lang misc-lang vietnamese
tibetan thai tai-viet lao korean japanese hebrew greek romanian slovak
czech european ethiopic indian cyrillic chinese case-table epa-hook
jka-cmpr-hook help simple abbrev minibuffer loaddefs button faces
cus-face files text-properties overlay sha1 md5 base64 format env
code-pages mule custom widget hashtable-print-readable backquote
make-network-process dbusbind dynamic-setting system-font-setting
font-render-setting move-toolbar gtk x-toolkit x multi-tty emacs)