GNU bug report logs - #56530
29.0.50; mouse-2 cut selected text when cua-mode is enabled

Previous Next

Package: emacs;

Reported by: David Ponce <da_vid <at> orange.fr>

Date: Wed, 13 Jul 2022 09:23:02 UTC

Severity: normal

Found in version 29.0.50

Fixed in version 29.1

Done: Lars Ingebrigtsen <larsi <at> gnus.org>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 56530 in the body.
You can then email your comments to 56530 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-gnu-emacs <at> gnu.org:
bug#56530; Package emacs. (Wed, 13 Jul 2022 09:23:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to David Ponce <da_vid <at> orange.fr>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Wed, 13 Jul 2022 09:23:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: David Ponce <da_vid <at> orange.fr>
To: bug-gnu-emacs <at> gnu.org
Cc: David PONCE <da_vid <at> orange.fr>
Subject: 29.0.50; mouse-2 cut selected text when cua-mode is enabled
Date: Wed, 13 Jul 2022 11:22:17 +0200
Hello,

I noticed that now, when cua-mode is enabled, when I select a region
(with mouse or keyboard), then use mouse-2 click on another point to
insert the selected text, the active region is cut before to insert text
at the mouse-2 click for the first time. As far as I remember this is a
new behavior, and previously the selected region was not cut, but
copied, like when cua-mode is disabled.

The woraround is to first deselect the region before to click mouse-2 to
insert the previously selected text. This way the initially selected 
text is not cut.

Not sure this is expected, so this bug report ;-)

Thanks

In GNU Emacs 29.0.50 (build 3, x86_64-pc-linux-gnu, GTK+ Version 
3.24.34, cairo version 1.17.6)
 of 2022-07-13 built on kilauea
Repository revision: c679756a9fb3ebd9a9b5fa9c9c64641fe493e8d8
Repository branch: master
Windowing system distributor 'The X.Org Foundation', version 11.0.12014000
System Description: Fedora Linux 36 (KDE Plasma)

Configured using:
 'configure --prefix=/home/dponce --with-cairo --without-sqlite3
 PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/lib/pkgconfig'

Configured features:
ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GSETTINGS HARFBUZZ JPEG JSON
LCMS2 LIBOTF LIBSELINUX LIBSYSTEMD LIBXML2 M17N_FLT MODULES NOTIFY
INOTIFY PDUMPER PNG RSVG SECCOMP SOUND THREADS TIFF TOOLKIT_SCROLL_BARS
WEBP X11 XDBE XIM XINPUT2 XPM GTK3 ZLIB

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

Major mode: Lisp Interaction

Minor modes in effect:
  delete-selection-mode: t
  cua-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  eldoc-mode: t
  show-paren-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  tool-bar-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  line-number-mode: t
  indent-tabs-mode: t
  transient-mark-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t

Load-path shadows:
None found.

Features:
(shadow sort mail-extr emacsbug message mailcap yank-media puny dired
dired-loaddefs rfc822 mml mml-sec password-cache epa derived epg rfc6068
epg-config gnus-util text-property-search mm-decode mm-bodies mm-encode
mail-parse rfc2231 mailabbrev gmm-utils mailheader sendmail rfc2047
rfc2045 ietf-drums mm-util mail-prsvr mail-utils time-date subr-x
cl-loaddefs cl-lib cus-start cus-load delsel cua-base rmc iso-transl
tooltip eldoc paren electric uniquify ediff-hook vc-hooks
lisp-float-type elisp-mode mwheel term/x-win x-win term/common-win x-dnd
tool-bar dnd fontset image regexp-opt fringe tabulated-list replace
newcomment text-mode lisp-mode prog-mode register page tab-bar menu-bar
rfn-eshadow isearch easymenu timer select scroll-bar mouse jit-lock
font-lock syntax font-core term/tty-colors frame minibuffer nadvice seq
simple cl-generic indonesian philippine 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 composite emoji-zwj charscript charprop case-table
epa-hook jka-cmpr-hook help abbrev obarray oclosure cl-preloaded button
loaddefs faces cus-face macroexp files window text-properties overlay
sha1 md5 base64 format env code-pages mule custom widget keymap
hashtable-print-readable backquote threads dbusbind inotify lcms2
dynamic-setting system-font-setting font-render-setting cairo
move-toolbar gtk x-toolkit xinput2 x multi-tty make-network-process
emacs)

Memory information:
((conses 16 48650 11785)
 (symbols 48 6173 0)
 (strings 32 15421 2063)
 (string-bytes 1 472483)
 (vectors 16 9531)
 (vector-slots 8 149129 13107)
 (floats 8 35 33)
 (intervals 56 222 0)
 (buffers 992 10))




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#56530; Package emacs. (Wed, 13 Jul 2022 09:51:01 GMT) Full text and rfc822 format available.

Message #8 received at 56530 <at> debbugs.gnu.org (full text, mbox):

From: Visuwesh <visuweshm <at> gmail.com>
To: David Ponce <da_vid <at> orange.fr>
Cc: 56530 <at> debbugs.gnu.org
Subject: Re: bug#56530: 29.0.50; mouse-2 cut selected text when cua-mode is
 enabled
Date: Wed, 13 Jul 2022 15:20:34 +0530
[Wednesday July 13, 2022] David Ponce wrote:

> Hello,
>
> I noticed that now, when cua-mode is enabled, when I select a region
> (with mouse or keyboard), then use mouse-2 click on another point to
> insert the selected text, the active region is cut before to insert text
> at the mouse-2 click for the first time. As far as I remember this is a
> new behavior, and previously the selected region was not cut, but
> copied, like when cua-mode is disabled.
>
> The woraround is to first deselect the region before to click mouse-2 to
> insert the previously selected text. This way the initially selected
> text is not cut.
>
> Not sure this is expected, so this bug report ;-)

It is expected.  mouse-2 (and other mouse yank commands) were recently
changed to respect delete-selection-mode (which is enabled by cua-mode)
by yours truly.  :-)

You can disable the new behaviour by saying,

    (put 'mouse-yank-primary 'delete-selection nil)
    (put 'mouse-yank-secondary 'delete-selection nil)
    (put 'mouse-yank-at-click 'delete-selection nil)

But I guess, it sure didn't take long for the complaints to come in...




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#56530; Package emacs. (Wed, 13 Jul 2022 10:11:02 GMT) Full text and rfc822 format available.

Message #11 received at 56530 <at> debbugs.gnu.org (full text, mbox):

From: Stefan Kangas <stefankangas <at> gmail.com>
To: David Ponce <da_vid <at> orange.fr>, 56530 <at> debbugs.gnu.org
Subject: Re: bug#56530: 29.0.50;
 mouse-2 cut selected text when cua-mode is enabled
Date: Wed, 13 Jul 2022 03:10:51 -0700
David Ponce <da_vid <at> orange.fr> writes:

> I noticed that now, when cua-mode is enabled, when I select a region
> (with mouse or keyboard), then use mouse-2 click on another point to
> insert the selected text, the active region is cut before to insert text
> at the mouse-2 click for the first time. As far as I remember this is a
> new behavior, and previously the selected region was not cut, but
> copied, like when cua-mode is disabled.
>
> The woraround is to first deselect the region before to click mouse-2 to
> insert the previously selected text. This way the initially selected
> text is not cut.

I can reproduce this on current master, but not on Emacs 27.

I think it's a bug.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#56530; Package emacs. (Wed, 13 Jul 2022 10:20:02 GMT) Full text and rfc822 format available.

Message #14 received at 56530 <at> debbugs.gnu.org (full text, mbox):

From: Lars Ingebrigtsen <larsi <at> gnus.org>
To: Visuwesh <visuweshm <at> gmail.com>
Cc: David Ponce <da_vid <at> orange.fr>, 56530 <at> debbugs.gnu.org
Subject: Re: bug#56530: 29.0.50; mouse-2 cut selected text when cua-mode is
 enabled
Date: Wed, 13 Jul 2022 12:19:14 +0200
Visuwesh <visuweshm <at> gmail.com> writes:

> It is expected.  mouse-2 (and other mouse yank commands) were recently
> changed to respect delete-selection-mode (which is enabled by cua-mode)
> by yours truly.  :-)

That wasn't really the intention of the change, I think?  It was so that
if you paste text from a different program into a selected area in
Emacs, then that area would be deleted first, or do I misremember?

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#56530; Package emacs. (Wed, 13 Jul 2022 11:04:02 GMT) Full text and rfc822 format available.

Message #17 received at 56530 <at> debbugs.gnu.org (full text, mbox):

From: Visuwesh <visuweshm <at> gmail.com>
To: Lars Ingebrigtsen <larsi <at> gnus.org>
Cc: David Ponce <da_vid <at> orange.fr>, 56530 <at> debbugs.gnu.org
Subject: Re: bug#56530: 29.0.50; mouse-2 cut selected text when cua-mode is
 enabled
Date: Wed, 13 Jul 2022 16:33:25 +0530
[Wednesday July 13, 2022] Lars Ingebrigtsen wrote:

> Visuwesh <visuweshm <at> gmail.com> writes:
>
>> It is expected.  mouse-2 (and other mouse yank commands) were recently
>> changed to respect delete-selection-mode (which is enabled by cua-mode)
>> by yours truly.  :-)
>
> That wasn't really the intention of the change, I think?  It was so that
> if you paste text from a different program into a selected area in
> Emacs, then that area would be deleted first, or do I misremember?

AFAICT, the recipe produces what I had in my mind when I proposed.  The
behaviour might seems slightly odd since mouse-yank-at-point is set to
nil in OP's case.  It shouldn't be hard to take this defcustom into
account tho.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#56530; Package emacs. (Wed, 13 Jul 2022 11:11:02 GMT) Full text and rfc822 format available.

Message #20 received at 56530 <at> debbugs.gnu.org (full text, mbox):

From: David Ponce <da_vid <at> orange.fr>
To: Visuwesh <visuweshm <at> gmail.com>
Cc: 56530 <at> debbugs.gnu.org
Subject: Re: bug#56530: 29.0.50; mouse-2 cut selected text when cua-mode is
 enabled
Date: Wed, 13 Jul 2022 13:10:32 +0200
On 13/07/2022 11:50, Visuwesh wrote:
> [Wednesday July 13, 2022] David Ponce wrote:
> 
>> Hello,
>>
>> I noticed that now, when cua-mode is enabled, when I select a region
>> (with mouse or keyboard), then use mouse-2 click on another point to
>> insert the selected text, the active region is cut before to insert text
>> at the mouse-2 click for the first time. As far as I remember this is a
>> new behavior, and previously the selected region was not cut, but
>> copied, like when cua-mode is disabled.
>>
>> The woraround is to first deselect the region before to click mouse-2 to
>> insert the previously selected text. This way the initially selected
>> text is not cut.
>>
>> Not sure this is expected, so this bug report ;-)
> 
> It is expected.  mouse-2 (and other mouse yank commands) were recently
> changed to respect delete-selection-mode (which is enabled by cua-mode)
> by yours truly.  :-)
> 
> You can disable the new behaviour by saying,
> 
>      (put 'mouse-yank-primary 'delete-selection nil)
>      (put 'mouse-yank-secondary 'delete-selection nil)
>      (put 'mouse-yank-at-click 'delete-selection nil)
> 
> But I guess, it sure didn't take long for the complaints to come in
Maybe the behavior could be disabled for cua-mode to be consistent with 
CUA expected behavior? After all, cua-mode is more than just 
delete-selection-mode ;-)

Thanks
[resent, forgot to CC the bug list]




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#56530; Package emacs. (Wed, 13 Jul 2022 11:12:01 GMT) Full text and rfc822 format available.

Message #23 received at 56530 <at> debbugs.gnu.org (full text, mbox):

From: Lars Ingebrigtsen <larsi <at> gnus.org>
To: Visuwesh <visuweshm <at> gmail.com>
Cc: David Ponce <da_vid <at> orange.fr>, 56530 <at> debbugs.gnu.org
Subject: Re: bug#56530: 29.0.50; mouse-2 cut selected text when cua-mode is
 enabled
Date: Wed, 13 Jul 2022 13:11:02 +0200
Visuwesh <visuweshm <at> gmail.com> writes:

> AFAICT, the recipe produces what I had in my mind when I proposed.  The
> behaviour might seems slightly odd since mouse-yank-at-point is set to
> nil in OP's case.  It shouldn't be hard to take this defcustom into
> account tho.

I think the patch has to be reverted, because this isn't what I had in
mind at all.  But we can reintroduce the same effect via, for instance,
a new minor mode that has the same effect (for those that want this).

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#56530; Package emacs. (Wed, 13 Jul 2022 11:17:01 GMT) Full text and rfc822 format available.

Message #26 received at 56530 <at> debbugs.gnu.org (full text, mbox):

From: Visuwesh <visuweshm <at> gmail.com>
To: David Ponce <da_vid <at> orange.fr>
Cc: 56530 <at> debbugs.gnu.org
Subject: Re: bug#56530: 29.0.50; mouse-2 cut selected text when cua-mode is
 enabled
Date: Wed, 13 Jul 2022 16:46:35 +0530
[Wednesday July 13, 2022] David Ponce wrote:

> On 13/07/2022 11:50, Visuwesh wrote:
>> You can disable the new behaviour by saying,
>>      (put 'mouse-yank-primary 'delete-selection nil)
>>      (put 'mouse-yank-secondary 'delete-selection nil)
>>      (put 'mouse-yank-at-click 'delete-selection nil)
>> But I guess, it sure didn't take long for the complaints to come in
> Maybe the behavior could be disabled for cua-mode to be consistent
> with CUA expected behavior? After all, cua-mode is more than just
> delete-selection-mode ;-)
>
> Thanks
> [resent, forgot to CC the bug list]

Thankfully delete-selection-mode is sufficiently flexible to allow this.
We just need to replace the (put 'mouse-yank-primary 'delete-selection t)
in delsel.el with the following,

    (put 'mouse-yank-primary 'delete-selection
        (lambda ()
          (if (or cua-mode (null mouse-yank-at-point))
               nil
             'yank)))

[ Disclaimer: I didn't test it.  ]




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#56530; Package emacs. (Wed, 13 Jul 2022 11:20:02 GMT) Full text and rfc822 format available.

Message #29 received at 56530 <at> debbugs.gnu.org (full text, mbox):

From: Visuwesh <visuweshm <at> gmail.com>
To: Lars Ingebrigtsen <larsi <at> gnus.org>
Cc: David Ponce <da_vid <at> orange.fr>, 56530 <at> debbugs.gnu.org
Subject: Re: bug#56530: 29.0.50; mouse-2 cut selected text when cua-mode is
 enabled
Date: Wed, 13 Jul 2022 16:49:24 +0530
[Wednesday July 13, 2022] Lars Ingebrigtsen wrote:

> Visuwesh <visuweshm <at> gmail.com> writes:
>
>> AFAICT, the recipe produces what I had in my mind when I proposed.  The
>> behaviour might seems slightly odd since mouse-yank-at-point is set to
>> nil in OP's case.  It shouldn't be hard to take this defcustom into
>> account tho.
>
> I think the patch has to be reverted, because this isn't what I had in
> mind at all.  But we can reintroduce the same effect via, for instance,
> a new minor mode that has the same effect (for those that want this).

Fine by me.  But I'm not sure how many people want this (I count two so
far), so we can just let the users who desire this behaviour add a few
lines to their init.el.  Or how about the snippet in
https://debbugs.gnu.org/cgi/bugreport.cgi?bug=56530#26 look to you?




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#56530; Package emacs. (Wed, 13 Jul 2022 11:31:02 GMT) Full text and rfc822 format available.

Message #32 received at 56530 <at> debbugs.gnu.org (full text, mbox):

From: Stefan Kangas <stefankangas <at> gmail.com>
To: Visuwesh <visuweshm <at> gmail.com>, Lars Ingebrigtsen <larsi <at> gnus.org>
Cc: David Ponce <da_vid <at> orange.fr>, 56530 <at> debbugs.gnu.org
Subject: Re: bug#56530: 29.0.50;
 mouse-2 cut selected text when cua-mode is enabled
Date: Wed, 13 Jul 2022 04:30:19 -0700
Visuwesh <visuweshm <at> gmail.com> writes:

> AFAICT, the recipe produces what I had in my mind when I proposed.  The
> behaviour might seems slightly odd since mouse-yank-at-point is set to
> nil in OP's case.  It shouldn't be hard to take this defcustom into
> account tho.

I think that neither Emacs nor `cua-mode' should behave differently from
other X programs in this regard, certainly not by default.  Could we
please avoid that?  The entire point of `cua-mode' is to be /more/ like
other software, not less.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#56530; Package emacs. (Wed, 13 Jul 2022 11:36:01 GMT) Full text and rfc822 format available.

Message #35 received at 56530 <at> debbugs.gnu.org (full text, mbox):

From: Visuwesh <visuweshm <at> gmail.com>
To: Stefan Kangas <stefankangas <at> gmail.com>
Cc: David Ponce <da_vid <at> orange.fr>, Lars Ingebrigtsen <larsi <at> gnus.org>,
 56530 <at> debbugs.gnu.org
Subject: Re: bug#56530: 29.0.50; mouse-2 cut selected text when cua-mode is
 enabled
Date: Wed, 13 Jul 2022 17:05:24 +0530
[Wednesday July 13, 2022] Stefan Kangas wrote:

> Visuwesh <visuweshm <at> gmail.com> writes:
>
>> AFAICT, the recipe produces what I had in my mind when I proposed.  The
>> behaviour might seems slightly odd since mouse-yank-at-point is set to
>> nil in OP's case.  It shouldn't be hard to take this defcustom into
>> account tho.
>
> I think that neither Emacs nor `cua-mode' should behave differently from
> other X programs in this regard, certainly not by default.  Could we
> please avoid that?  The entire point of `cua-mode' is to be /more/ like
> other software, not less.

Like I said in the original bug report, I have no problems if the change
was reverted.  I would do it myself but I have no push access.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#56530; Package emacs. (Wed, 13 Jul 2022 11:41:02 GMT) Full text and rfc822 format available.

Message #38 received at 56530 <at> debbugs.gnu.org (full text, mbox):

From: Lars Ingebrigtsen <larsi <at> gnus.org>
To: Visuwesh <visuweshm <at> gmail.com>
Cc: David Ponce <da_vid <at> orange.fr>, 56530 <at> debbugs.gnu.org
Subject: Re: bug#56530: 29.0.50; mouse-2 cut selected text when cua-mode is
 enabled
Date: Wed, 13 Jul 2022 13:40:44 +0200
Visuwesh <visuweshm <at> gmail.com> writes:

>> I think the patch has to be reverted, because this isn't what I had in
>> mind at all.  But we can reintroduce the same effect via, for instance,
>> a new minor mode that has the same effect (for those that want this).
>
> Fine by me.  But I'm not sure how many people want this (I count two so
> far), so we can just let the users who desire this behaviour add a few
> lines to their init.el.

I've now reverted the commit and reopened that other bug report.

> Or how about the snippet in
> https://debbugs.gnu.org/cgi/bugreport.cgi?bug=56530#26 look to you?

I think having an explicit minor mode for this would be tidier.  It
would be trivial -- it'd just `put' on those symbols.

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no




bug marked as fixed in version 29.1, send any further explanations to 56530 <at> debbugs.gnu.org and David Ponce <da_vid <at> orange.fr> Request was from Lars Ingebrigtsen <larsi <at> gnus.org> to control <at> debbugs.gnu.org. (Wed, 13 Jul 2022 11:42:02 GMT) Full text and rfc822 format available.

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#56530; Package emacs. (Wed, 13 Jul 2022 19:30:02 GMT) Full text and rfc822 format available.

Message #43 received at 56530 <at> debbugs.gnu.org (full text, mbox):

From: Juri Linkov <juri <at> linkov.net>
To: Stefan Kangas <stefankangas <at> gmail.com>
Cc: David Ponce <da_vid <at> orange.fr>, Lars Ingebrigtsen <larsi <at> gnus.org>,
 56530 <at> debbugs.gnu.org, Visuwesh <visuweshm <at> gmail.com>
Subject: Re: bug#56530: 29.0.50; mouse-2 cut selected text when cua-mode is
 enabled
Date: Wed, 13 Jul 2022 22:14:44 +0300
>> AFAICT, the recipe produces what I had in my mind when I proposed.  The
>> behaviour might seems slightly odd since mouse-yank-at-point is set to
>> nil in OP's case.  It shouldn't be hard to take this defcustom into
>> account tho.
>
> I think that neither Emacs nor `cua-mode' should behave differently from
> other X programs in this regard, certainly not by default.  Could we
> please avoid that?  The entire point of `cua-mode' is to be /more/ like
> other software, not less.

I'd like to know what programs do you mean.  In every program I see
the same behavior:

1. Select a region
2. Choose "Copy" from the context menu
3. Select another region
4. Choose "Paste" on the region from the context menu

It always deletes the region before pasting the text from the clipboard.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#56530; Package emacs. (Wed, 13 Jul 2022 19:30:03 GMT) Full text and rfc822 format available.

Message #46 received at 56530 <at> debbugs.gnu.org (full text, mbox):

From: Juri Linkov <juri <at> linkov.net>
To: Visuwesh <visuweshm <at> gmail.com>
Cc: David Ponce <da_vid <at> orange.fr>, Lars Ingebrigtsen <larsi <at> gnus.org>,
 56530 <at> debbugs.gnu.org
Subject: Re: bug#56530: 29.0.50; mouse-2 cut selected text when cua-mode is
 enabled
Date: Wed, 13 Jul 2022 22:19:56 +0300
>> That wasn't really the intention of the change, I think?  It was so that
>> if you paste text from a different program into a selected area in
>> Emacs, then that area would be deleted first, or do I misremember?
>
> AFAICT, the recipe produces what I had in my mind when I proposed.  The
> behaviour might seems slightly odd since mouse-yank-at-point is set to
> nil in OP's case.  It shouldn't be hard to take this defcustom into
> account tho.

It should delete the region only when clicking on the selected region.
Maybe it's possible to add a corresponding function for the
'delete-selection' property?




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#56530; Package emacs. (Thu, 14 Jul 2022 00:58:01 GMT) Full text and rfc822 format available.

Message #49 received at 56530 <at> debbugs.gnu.org (full text, mbox):

From: Po Lu <luangruo <at> yahoo.com>
To: Visuwesh <visuweshm <at> gmail.com>
Cc: David Ponce <da_vid <at> orange.fr>, 56530 <at> debbugs.gnu.org
Subject: Re: bug#56530: 29.0.50; mouse-2 cut selected text when cua-mode is
 enabled
Date: Thu, 14 Jul 2022 08:56:49 +0800
Visuwesh <visuweshm <at> gmail.com> writes:

> It is expected.  mouse-2 (and other mouse yank commands) were recently
> changed to respect delete-selection-mode (which is enabled by cua-mode)
> by yours truly.  :-)

This is very much wrong: programs should never set the clipboard to the
contents of the primary selection upon a middle-click paste.  That makes
inserting the clipboard impossible later on.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#56530; Package emacs. (Thu, 14 Jul 2022 17:21:01 GMT) Full text and rfc822 format available.

Message #52 received at 56530 <at> debbugs.gnu.org (full text, mbox):

From: Lars Ingebrigtsen <larsi <at> gnus.org>
To: Juri Linkov <juri <at> linkov.net>
Cc: David Ponce <da_vid <at> orange.fr>, 56530 <at> debbugs.gnu.org,
 Visuwesh <visuweshm <at> gmail.com>
Subject: Re: bug#56530: 29.0.50; mouse-2 cut selected text when cua-mode is
 enabled
Date: Thu, 14 Jul 2022 19:20:13 +0200
Juri Linkov <juri <at> linkov.net> writes:

> It should delete the region only when clicking on the selected region.
> Maybe it's possible to add a corresponding function for the
> 'delete-selection' property?

Shouldn't be too difficult, but it seems like different people have
different expectations of what should happen here, so I think having
separate minor modes (or some user options) is probably the way to go.

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#56530; Package emacs. (Thu, 14 Jul 2022 17:30:02 GMT) Full text and rfc822 format available.

Message #55 received at 56530 <at> debbugs.gnu.org (full text, mbox):

From: Juri Linkov <juri <at> linkov.net>
To: Lars Ingebrigtsen <larsi <at> gnus.org>
Cc: David Ponce <da_vid <at> orange.fr>, 56530 <at> debbugs.gnu.org,
 Visuwesh <visuweshm <at> gmail.com>
Subject: Re: bug#56530: 29.0.50; mouse-2 cut selected text when cua-mode is
 enabled
Date: Thu, 14 Jul 2022 20:24:52 +0300
>> It should delete the region only when clicking on the selected region.
>> Maybe it's possible to add a corresponding function for the
>> 'delete-selection' property?
>
> Shouldn't be too difficult, but it seems like different people have
> different expectations of what should happen here, so I think having
> separate minor modes (or some user options) is probably the way to go.

There is already the minor mode: delete-selection-mode
that is configured by symbol properties.
Supporting a descriptive symbol name would allow to easily
configure the desired behavior with just:

  (put 'mouse-yank-at-click 'delete-selection 'yank-on-region)




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#56530; Package emacs. (Thu, 14 Jul 2022 18:05:02 GMT) Full text and rfc822 format available.

Message #58 received at 56530 <at> debbugs.gnu.org (full text, mbox):

From: Lars Ingebrigtsen <larsi <at> gnus.org>
To: Juri Linkov <juri <at> linkov.net>
Cc: David Ponce <da_vid <at> orange.fr>, 56530 <at> debbugs.gnu.org,
 Visuwesh <visuweshm <at> gmail.com>
Subject: Re: bug#56530: 29.0.50; mouse-2 cut selected text when cua-mode is
 enabled
Date: Thu, 14 Jul 2022 20:04:45 +0200
Juri Linkov <juri <at> linkov.net> writes:

> There is already the minor mode: delete-selection-mode
> that is configured by symbol properties.
> Supporting a descriptive symbol name would allow to easily
> configure the desired behavior with just:
>
>   (put 'mouse-yank-at-click 'delete-selection 'yank-on-region)

The problem is that you have to `put' on three symbols, which isn't
optimal.  (My proposed mode does just that.)

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#56530; Package emacs. (Fri, 15 Jul 2022 18:57:02 GMT) Full text and rfc822 format available.

Message #61 received at 56530 <at> debbugs.gnu.org (full text, mbox):

From: Juri Linkov <juri <at> linkov.net>
To: Lars Ingebrigtsen <larsi <at> gnus.org>
Cc: David Ponce <da_vid <at> orange.fr>, 56530 <at> debbugs.gnu.org,
 Visuwesh <visuweshm <at> gmail.com>
Subject: Re: bug#56530: 29.0.50; mouse-2 cut selected text when cua-mode is
 enabled
Date: Fri, 15 Jul 2022 21:53:33 +0300
[Message part 1 (text/plain, inline)]
>> There is already the minor mode: delete-selection-mode
>> that is configured by symbol properties.
>> Supporting a descriptive symbol name would allow to easily
>> configure the desired behavior with just:
>>
>>   (put 'mouse-yank-at-click 'delete-selection 'yank-on-region)
>
> The problem is that you have to `put' on three symbols, which isn't
> optimal.  (My proposed mode does just that.)

The default settings should be suitable for all users,
but modes for groups of settings could be added too.

This patch works well but only like Visuwesh pointed out
when mouse-yank-at-point is set to t.  This is because
mouse-yank-primary has such line:

  (or mouse-yank-at-point (mouse-set-point event))

When delete-selection deletes the region where the mouse is clicked,
mouse-set-point loses track and sets point to a random position,
because the event contains fixed positions, not markers.
I wonder why?

[yank-on-region.patch (text/x-diff, inline)]
diff --git a/lisp/delsel.el b/lisp/delsel.el
index 5310328e5f..d9e0141d90 100644
--- a/lisp/delsel.el
+++ b/lisp/delsel.el
@@ -39,6 +39,8 @@
 ;;      For commands which do a yank; ensures the region about to be
 ;;      deleted isn't immediately yanked back, which would make the
 ;;      command a no-op.
+;;  `yank-on-region'
+;;      Like `yank' but applied only when clicked on the region.
 ;;  `supersede'
 ;;      Delete the active region and ignore the current command,
 ;;      i.e. the command will just delete the region.  This is for
@@ -176,6 +178,8 @@ delete-selection-helper
      For commands which do a yank; ensures the region about to be
      deleted isn't immediately yanked back, which would make the
      command a no-op.
+ `yank-on-region'
+     Like `yank' but applied only when clicked on the region.
  `supersede'
      Delete the active region and ignore the current command,
      i.e. the command will just delete the region.  This is for
@@ -220,6 +224,11 @@ delete-selection-helper
                ;; If the region was, say, rectangular, make sure we yank
                ;; from the top, to "replace".
                (goto-char pos)))
+            ((eq type 'yank-on-region)
+             (let ((pos (posn-point (event-end last-nonmenu-event))))
+               (when (and (>= pos (region-beginning))
+                          (<= pos (region-end)))
+                 (delete-selection-helper 'yank))))
 	    ((eq type 'supersede)
 	     (let ((empty-region (= (point) (mark))))
 	       (delete-active-region)
@@ -300,6 +309,12 @@ delete-selection-uses-region-p
 (put 'yank-pop 'delete-selection 'yank)
 (put 'yank-from-kill-ring 'delete-selection 'yank)
 (put 'clipboard-yank 'delete-selection 'yank)
+
+(put 'mouse-yank-primary 'delete-selection 'yank-on-region)
+(put 'mouse-yank-secondary 'delete-selection 'yank-on-region)
+(put 'mouse-yank-at-click 'delete-selection 'yank-on-region)
+(put 'menu-bar-select-yank 'delete-selection 'yank-on-region)
+
 (put 'insert-register 'delete-selection t)
 ;; delete-backward-char and delete-forward-char already delete the selection by
 ;; default, but not delete-char.

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#56530; Package emacs. (Sat, 16 Jul 2022 10:35:02 GMT) Full text and rfc822 format available.

Message #64 received at 56530 <at> debbugs.gnu.org (full text, mbox):

From: Lars Ingebrigtsen <larsi <at> gnus.org>
To: Juri Linkov <juri <at> linkov.net>
Cc: David Ponce <da_vid <at> orange.fr>, 56530 <at> debbugs.gnu.org,
 Visuwesh <visuweshm <at> gmail.com>
Subject: Re: bug#56530: 29.0.50; mouse-2 cut selected text when cua-mode is
 enabled
Date: Sat, 16 Jul 2022 12:34:37 +0200
Juri Linkov <juri <at> linkov.net> writes:

> This patch works well

Looks good to me.

> but only like Visuwesh pointed out
> when mouse-yank-at-point is set to t.  This is because
> mouse-yank-primary has such line:
>
>   (or mouse-yank-at-point (mouse-set-point event))
>
> When delete-selection deletes the region where the mouse is clicked,
> mouse-set-point loses track and sets point to a random position,
> because the event contains fixed positions, not markers.
> I wonder why?

Sounds like a bug.

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#56530; Package emacs. (Sun, 17 Jul 2022 19:36:02 GMT) Full text and rfc822 format available.

Message #67 received at 56530 <at> debbugs.gnu.org (full text, mbox):

From: Juri Linkov <juri <at> linkov.net>
To: Lars Ingebrigtsen <larsi <at> gnus.org>
Cc: David Ponce <da_vid <at> orange.fr>, 56530 <at> debbugs.gnu.org,
 Visuwesh <visuweshm <at> gmail.com>
Subject: Re: bug#56530: 29.0.50; mouse-2 cut selected text when cua-mode is
 enabled
Date: Sun, 17 Jul 2022 21:49:41 +0300
>> but only like Visuwesh pointed out
>> when mouse-yank-at-point is set to t.  This is because
>> mouse-yank-primary has such line:
>>
>>   (or mouse-yank-at-point (mouse-set-point event))
>>
>> When delete-selection deletes the region where the mouse is clicked,
>> mouse-set-point loses track and sets point to a random position,
>> because the event contains fixed positions, not markers.
>> I wonder why?
>
> Sounds like a bug.

All affected mouse commands mouse-yank-from-menu, mouse-yank-at-click,
mouse-yank-primary, mouse-yank-secondary have the same line:

  (or mouse-yank-at-point (mouse-set-point event))

So when the region is deleted by delete-selection-pre-hook
`mouse-set-point' tries to set point using outdated information
of the event's position in the deleted region.

Maybe delete-selection-pre-hook could directly modify the event?
Everything works fine with this:

            ((eq type 'yank-on-region)
             (let ((pos (posn-point (event-end last-nonmenu-event))))
               (when (and (>= pos (region-beginning))
                          (<= pos (region-end)))
                 (delete-selection-helper 'yank)
                 (setf (nth 5 (nth 1 last-nonmenu-event)) (region-beginning)))))

But is this a good idea?




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#56530; Package emacs. (Fri, 22 Jul 2022 15:08:01 GMT) Full text and rfc822 format available.

Message #70 received at 56530 <at> debbugs.gnu.org (full text, mbox):

From: Lars Ingebrigtsen <larsi <at> gnus.org>
To: Juri Linkov <juri <at> linkov.net>
Cc: David Ponce <da_vid <at> orange.fr>, 56530 <at> debbugs.gnu.org,
 Visuwesh <visuweshm <at> gmail.com>
Subject: Re: bug#56530: 29.0.50; mouse-2 cut selected text when cua-mode is
 enabled
Date: Fri, 22 Jul 2022 17:07:12 +0200
Juri Linkov <juri <at> linkov.net> writes:

> All affected mouse commands mouse-yank-from-menu, mouse-yank-at-click,
> mouse-yank-primary, mouse-yank-secondary have the same line:
>
>   (or mouse-yank-at-point (mouse-set-point event))
>
> So when the region is deleted by delete-selection-pre-hook
> `mouse-set-point' tries to set point using outdated information
> of the event's position in the deleted region.
>
> Maybe delete-selection-pre-hook could directly modify the event?
> Everything works fine with this:
>
>             ((eq type 'yank-on-region)
>              (let ((pos (posn-point (event-end last-nonmenu-event))))
>                (when (and (>= pos (region-beginning))
>                           (<= pos (region-end)))
>                  (delete-selection-helper 'yank)
>                  (setf (nth 5 (nth 1 last-nonmenu-event)) (region-beginning)))))
>
> But is this a good idea?

It sounds kinda gross.  Would it be possible to rewrite these commands
to that point is set before the deletion is done, or is that unfeasible?

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#56530; Package emacs. (Sun, 24 Jul 2022 17:19:02 GMT) Full text and rfc822 format available.

Message #73 received at 56530 <at> debbugs.gnu.org (full text, mbox):

From: Juri Linkov <juri <at> linkov.net>
To: Lars Ingebrigtsen <larsi <at> gnus.org>
Cc: David Ponce <da_vid <at> orange.fr>, 56530 <at> debbugs.gnu.org,
 Visuwesh <visuweshm <at> gmail.com>
Subject: Re: bug#56530: 29.0.50; mouse-2 cut selected text when cua-mode is
 enabled
Date: Sun, 24 Jul 2022 19:52:19 +0300
>> All affected mouse commands mouse-yank-from-menu, mouse-yank-at-click,
>> mouse-yank-primary, mouse-yank-secondary have the same line:
>>
>>   (or mouse-yank-at-point (mouse-set-point event))
>>
>> So when the region is deleted by delete-selection-pre-hook
>> `mouse-set-point' tries to set point using outdated information
>> of the event's position in the deleted region.
>>
>> Maybe delete-selection-pre-hook could directly modify the event?
>> Everything works fine with this:
>>
>>             ((eq type 'yank-on-region)
>>              (let ((pos (posn-point (event-end last-nonmenu-event))))
>>                (when (and (>= pos (region-beginning))
>>                           (<= pos (region-end)))
>>                  (delete-selection-helper 'yank)
>>                  (setf (nth 5 (nth 1 last-nonmenu-event)) (region-beginning)))))
>>
>> But is this a good idea?
>
> It sounds kinda gross.  Would it be possible to rewrite these commands
> to that point is set before the deletion is done, or is that unfeasible?

delete-selection-mode deletes the region in pre-command-hook
before running the command.

Maybe then these commands could have special handling of delete-selection-mode?
They already contain special handling of select-active-regions:

  ;; Without this, confusing things happen upon e.g. inserting into
  ;; the middle of an active region.
  (when select-active-regions
    (let (select-active-regions)
      (deactivate-mark)))




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#56530; Package emacs. (Tue, 26 Jul 2022 12:09:02 GMT) Full text and rfc822 format available.

Message #76 received at 56530 <at> debbugs.gnu.org (full text, mbox):

From: Lars Ingebrigtsen <larsi <at> gnus.org>
To: Juri Linkov <juri <at> linkov.net>
Cc: David Ponce <da_vid <at> orange.fr>, 56530 <at> debbugs.gnu.org,
 Visuwesh <visuweshm <at> gmail.com>
Subject: Re: bug#56530: 29.0.50; mouse-2 cut selected text when cua-mode is
 enabled
Date: Tue, 26 Jul 2022 14:08:37 +0200
Juri Linkov <juri <at> linkov.net> writes:

> delete-selection-mode deletes the region in pre-command-hook
> before running the command.
>
> Maybe then these commands could have special handling of delete-selection-mode?
> They already contain special handling of select-active-regions:
>
>   ;; Without this, confusing things happen upon e.g. inserting into
>   ;; the middle of an active region.
>   (when select-active-regions
>     (let (select-active-regions)
>       (deactivate-mark)))

Yes, I think that sounds like the way to go.





bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Wed, 24 Aug 2022 11:24:03 GMT) Full text and rfc822 format available.

This bug report was last modified 2 years and 356 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.