Subject: bug#34014: 25.2; binding down mouse event with modifier to mouse-drag-region does not work

From: Adolf Mathias <[email-masked]>
Date: Sat, 15 Aug 2020 13:53:47 +0200

Sorry, I always had the impression that the comment of
mouse-stay-ad-copy was explicit enough - also, when I was in
conversation with the previous guy who processed this bug report, I
explained it to him, and most certainly didn't reply to all, and that
person did not mention this to me as you did. Anyway...

The function allows a workflow that I know from the SunOS Textedit
from the late 1980s. Your cursor is somewhere in the text, you drag
out a region in the same window/buffer or another one, and the text
that you selected gets copied to your cursor at mouse button release,
without having to reposition your cursor.

Without it, the normal workflow is: you remember where your cursor is,
select a region and either use middle button to paste at the
remembered position, given that you are dexterous enough to hit the
right spot (which, as you can tell from my experiences with SunOS, is
not so much the case any more), or hit Ctrl-C or Alt-W, then position
the cursor at the remembered position and hit Ctrl-Y or Ctrl-V.

mouse-stay-and-copy accelerates a very frequent operation and saves
the user from having to remember the original inserting position and
being dexterous enough to hit it again,  or having to use the Emacs
mark stack that I personally find rather unintuitive.

Along with mouse-stay-and-copy, I also have mouse-stay-and-kill, which
kills the temporarily dragged out region and moves it to the original
cursor position, and mouse-stay-and-swap, which, given a currently
selected region, allows to drag out that temporary selection whose
content is then swapped with the original selection. That one saves a
lot of work in certain cases, once you are used to it. I used to bind
it to C-M-button1.

On Sat, Aug 15, 2020 at 4:20 AM Stefan Kangas <[email-masked]> wrote:
>
> Adolf Mathias <[email-masked]> writes:
>
> > On Emacs Post 24, this stopped to work.
>
> Could you also explain what exactly your code is supposed to be doing?
>
> And did you try the following?
>
> (define-key global-map '[S-down-mouse-1] 'mouse-stay-and-copy)
> (define-key global-map '[S-drag-mouse-1] 'mouse-set-region)
>
> Best regards,
> Stefan Kangas