GNU bug report logs -
#34014
Make mouse-drag-copy-region support immediate yanking at point
Previous Next
Full log
Message #21 received at 34014 <at> debbugs.gnu.org (full text, mbox):
Yes, your two expressions works on emacs-27.1 which I just installed
with snap on an Ubuntu 18.04, dragging S-mouse1 sets the region like
mouse-1.
The thing is, on Emacs24 and before I had the following working code:
==========================
(defun mouse-stay-and-copy (click)
"leaves cursor at current position, allows to drag a region which is
yanked at cursor position"
(interactive "e")
(let ((selected nil)
(win (selected-window))
(otherwin nil)
(otherstart nil)
(eventstart nil))
(save-excursion
(setq eventstart (event-start click))
(setq otherwin (car eventstart))
(setq otherstart (window-start otherwin))
(mouse-drag-track click)
(if mark-active
(progn (kill-new (buffer-substring (region-beginning) (region-end)))
(setq selected 1)
)))
(select-window win)
(if selected
(progn
(if mark-active (delete-region (region-beginning) (region-end)))
(yank)
;;(redraw-display)
))
(set-window-start otherwin otherstart nil)))
(define-key global-map '[S-down-mouse-1] 'mouse-stay-and-copy)
==========================
On Emacs Post 24, this stopped to work. When I filed the bug report, I
reduced this to a builtin Emacs function.
On Emacs 24, to bind Shift-mouse1, only the following call is required:
(define-key global-map '[S-down-mouse-1] 'mouse-drag-region)
My mouse-stay-and-copy is just a fancy replacement for
mouse-drag-region. Sadly, its API in conjunction with mouse-drag-track
has changed mysteriously with post-24.
On Fri, Aug 14, 2020 at 4:29 PM Stefan Kangas <stefan <at> marxist.se> wrote:
>
> reopen 34014
> thanks
>
> Hi Adolf,
>
> [Please use "Reply to all" so that the discussion is recorded in the bug
> tracker.]
>
> Adolf Mathias <adolf.mathias <at> gmail.com> writes:
>
> > Sorry for the apparent delay. I myself got a bit frustrated with the
> > issue and rewrote a simple version of mouse-drag-region for myself
> > which does not deal with double/triple-clicks acting on words and
> > lines however. I was not able to disentangle what Emacs does there.
> > I somehow was convinced that I had answered back then why I wanted to
> > bind mouse-drag-region to a button-down event.
> > I did so because the Emacs help on mouse-drag-region told me so, and
> > because it used to work that way.
>
> Thanks for replying back. I am therefore reopening this bug.
> With your help, we could try to figure out what is going on here.
>
> Does it work like you expect if you evaluate this in emacs -Q?
>
> (define-key global-map '[S-down-mouse-1] 'mouse-drag-region)
> (define-key global-map '[S-drag-mouse-1] 'mouse-set-region)
>
> If that does not help, could you please try to describe the use-case in
> more detail and explain what it is you're trying to achieve?
>
> Thanks in advance.
>
> Best regards,
> Stefan Kangas
This bug report was last modified 4 years and 299 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.