Subject: 25.0.94; Calc: Yanking with mouse-2 does not use X primary selection/clipboard

From: Bastian Beischer <[email-masked]>
Date: Fri, 27 May 2016 13:17:31 +0200

I have customized 'select-enable-primary' to 't' and I'm using it to
paste the X primary selection with 'mouse-2' often. This invokes
mouse-yank-primary and that works fine.

It does not work well in calc, though. In calc mouse-2 is bound to
calc-yank, which takes the thing to be yanked from the kill-ring.

I think it would be appropriate to add a dedicated function
"calc-yank-mouse" which forwards the data obtained by
'gui-selection-value' to 'calc-yank'.

I'm not sure that 'gui-selection-value' is the correct function: What I
mean is 'a function which respects 'select-enable-primary' and
'select-enable-clipboard' and returns the right thing from the
corresponding X buffer'.

To reproduce:

1) emacs -Q
2) M-x calc
3) Select a number in some other X window (xterm for example) with the
   mouse
4) Go back to emacs *calc* buffer and press mouse-2.

In GNU Emacs 25.0.94.1 (x86_64-unknown-linux-gnu, GTK+ Version 3.20.6)
 of 2016-05-25 built on beischer-w520
Repository revision: 897fb6fa49d5ffc85f0a796e7414a43ef05ad096
Windowing system distributor 'The X.Org Foundation', version 11.0.11803000
Configured using:
 'configure --prefix=/usr --sysconfdir=/etc --libexecdir=/usr/lib
 --localstatedir=/var --mandir=/usr/share/man --with-gameuser=:games
 --with-sound=alsa --with-xft --with-modules --with-x-toolkit=gtk3
 --without-gconf --with-gsettings 'CFLAGS=-march=native -O2 -pipe
 -fstack-protector-strong' CPPFLAGS=-D_FORTIFY_SOURCE=2
 LDFLAGS=-Wl,-O1,--sort-common,--as-needed,-z,relro'

Configured features:
XPM JPEG TIFF GIF PNG RSVG IMAGEMAGICK SOUND GPM DBUS GSETTINGS NOTIFY
ACL GNUTLS LIBXML2 FREETYPE M17N_FLT LIBOTF XFT ZLIB TOOLKIT_SCROLL_BARS
GTK3 X11 MODULES

Important settings:
  value of $LANG: en_US.UTF-8
  locale-coding-system: utf-8-unix

Major mode: Lisp Interaction

Minor modes in effect:
  projectile-global-mode: t
  projectile-mode: t
  yas-global-mode: t
  yas-minor-mode: t
  window-numbering-mode: t
  company-mode: t
  diff-auto-refine-mode: t
  magit-auto-revert-mode: t
  global-git-commit-mode: t
  async-bytecomp-package-mode: t
  flx-ido-mode: t
  ido-everywhere: t
  global-srecode-minor-mode: t
  global-semanticdb-minor-mode: t
  global-semantic-idle-scheduler-mode: t
  global-semantic-decoration-mode: t
  global-semantic-highlight-func-mode: t
  global-semantic-stickyfunc-mode: t
  global-semantic-show-parser-state-mode: t
  semantic-mode: t
  global-ede-mode: t
  shell-dirtrack-mode: t
  show-paren-mode: t
  global-hi-lock-mode: t
  hi-lock-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  electric-indent-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
  column-number-mode: t
  line-number-mode: t
  transient-mark-mode: t
  hs-minor-mode: t

Recent messages:
.emacs.d/cedet/lisp/cedet/ede/loaddefs.el: Obsolete name arg "lein2" to constructor ede-project-autoload
.emacs.d/cedet/lisp/cedet/ede/loaddefs.el: Obsolete name arg "linux" to constructor ede-project-autoload
.emacs.d/cedet/lisp/cedet/ede/loaddefs.el: Obsolete name arg "maven2" to constructor ede-project-autoload
Parsing  *srecode-map-tmp* (LALR)...done
Loading /home/beischer/.emacs.d/cedet/cedet-devel-load.el (source)...done
ad-handle-definition: ‘ido-completing-read’ got redefined
Loading buff-menu...done
ad-handle-definition: ‘add-log-current-defun’ got redefined
Turning on magit-auto-revert-mode...done
For information about GNU Emacs and the GNU system, type C-h C-a.

Load-path shadows:
/home/beischer/.emacs.d/cedet/lisp/speedbar/loaddefs hides /home/beischer/.emacs.d/cedet/lisp/cedet/loaddefs
/home/beischer/.emacs.d/elpa/helm-20160526.248/helm-multi-match hides /home/beischer/.emacs.d/elpa/helm-core-20160526.349/helm-multi-match
/home/beischer/.emacs.d/elpa/cmake-mode-20160510.1140/cmake-mode hides /usr/share/emacs/site-lisp/cmake-mode
/usr/share/emacs/site-lisp/various/buff-menu hides /usr/share/emacs/25.0.94/lisp/buff-menu
/home/beischer/.emacs.d/cedet/lisp/speedbar/loaddefs hides /usr/share/emacs/25.0.94/lisp/loaddefs
/home/beischer/.emacs.d/elpa/emms-20160304.920/tq hides /usr/share/emacs/25.0.94/lisp/emacs-lisp/tq

Features:
(shadow sort mail-extr emacsbug sendmail company-oddmuse
company-keywords company-etags company-gtags company-dabbrev-code
company-dabbrev company-files company-capf company-cmake company-xcode
company-clang company-semantic company-eclim company-template
company-css company-nxml company-bbdb company-edbi edbi sql view jedi
jedi-core python-environment epc ctable concurrent deferred
auto-complete popup cmake-project gist gh-gist gh-oauth gh-api logito
gh-cache pcache gh-auth gh-common gh-url url-http tls gnutls url-auth
url-gw gh-profile json map timezone org-install tempo url url-proxy
url-privacy url-expand url-methods url-history url-cookie url-domsuf
url-util url-parse url-vars mailcap xml-parse doxymacs projectile
ibuf-ext ibuffer dropdown-list yasnippet cl my-term term disp-table
ehelp etags-table etags xref project cmake-mode thingatpt rx qt-pro
pastebin window-numbering company magit-topgit magit-blame magit-stash
magit-bisect magit-remote magit-commit epa magit-sequence magit esh-var
esh-io esh-cmd esh-opt esh-ext esh-proc esh-arg esh-groups eshell
esh-module esh-mode esh-util magit-apply magit-wip magit-log magit-diff
smerge-mode diff-mode magit-core magit-autorevert autorevert filenotify
magit-process magit-popup magit-mode derived magit-git crm magit-section
magit-utils git-commit log-edit message idna rfc822 mml mml-sec epg
mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045
ietf-drums mailabbrev mail-utils gmm-utils mailheader pcvs-util add-log
with-editor async-bytecomp easy-mmode async tramp-sh server hide-lines
buff-menu+ hideshow flx-ido flx ido dired-x dired ede/cpp-root
srecode/mode semantic/senator srecode/insert srecode/filters
srecode/args semantic/db-mode f dash s semantic/bovine/c hideif
semantic/bovine/c-by semantic/lex-spp semantic/idle working fame
semantic/bovine/gcc semantic/dep semantic/bovine semantic/analyze/refs
semantic/decorate/include semantic/db-find semantic/db-ref
semantic/decorate/mode semantic/decorate pulse cedet-devel-load
cogre/srecode cogre cogre/picture-hack rect picture eieio-opt find-func
srecode/find srecode/map semantic/edit srecode/srt-mode srecode/template
srecode/srt-wy semantic/wisent semantic/wisent/wisent srecode/ctxt
srecode/compile srecode/dictionary srecode/table srecode
semantic/canned-configs semantic/ia-sb semantic/analyze semantic/sort
semantic/scope semantic/analyze/fcn semantic/db semantic/ctxt
semantic/format semantic/tag-ls semantic/find semantic/util-modes
semantic/util semantic semantic/tag semantic/lex semantic/fw mode-local
sb-info ede/speedbar ede/files ede ede/detect ede/base ede/auto
ede/source eieio-compat eieio-base eieio-speedbar speedbar sb-image
ezimage dframe eieio-custom wid-edit cedet cedet-compat inversion
cedet-remove-builtin cc-mode cc-fonts cc-guess cc-menus cc-cmds
cc-styles cc-align cc-engine cc-vars cc-defs flymake finder-inf tex-site
info package epg-config seq vc-cvs tramp tramp-compat auth-source cl-seq
eieio byte-opt bytecomp byte-compile cl-extra cconv eieio-core cl-macs
gv gnus-util mm-util help-fns help-mode easymenu mail-prsvr
password-cache tramp-loaddefs trampver ucs-normalize shell pcomplete
format-spec advice edmacro kmacro cl-loaddefs pcase cl-lib emacs-x-theme
paren grep compile comint ansi-color ring linum hi-lock cus-start
cus-load time-date mule-util tooltip eldoc electric uniquify ediff-hook
vc-hooks lisp-float-type mwheel x-win term/common-win x-dnd tool-bar dnd
fontset image regexp-opt fringe tabulated-list newcomment elisp-mode
lisp-mode prog-mode register page menu-bar rfn-eshadow timer select
scroll-bar mouse jit-lock font-lock syntax facemenu font-core frame
cl-generic cham georgian utf-8-lang misc-lang vietnamese tibetan thai
tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek romanian
slovak czech european ethiopic indian cyrillic chinese charscript
case-table epa-hook jka-cmpr-hook help simple abbrev minibuffer
cl-preloaded nadvice loaddefs button faces cus-face macroexp files
text-properties overlay sha1 md5 base64 format env code-pages mule
custom widget hashtable-print-readable backquote dbusbind inotify
dynamic-setting system-font-setting font-render-setting move-toolbar gtk
x-toolkit x multi-tty make-network-process emacs)

Memory information:
((conses 16 614175 16718)
 (symbols 48 51346 53)
 (miscs 40 87 180)
 (strings 32 120506 20978)
 (string-bytes 1 3736110)
 (vectors 16 72174)
 (vector-slots 8 1281781 10649)
 (floats 8 1544 163)
 (intervals 56 402 0)
 (buffers 976 14)
 (heap 1024 50297 2436))