Subject: Re: bug#56530: 29.0.50; mouse-2 cut selected text when cua-mode is enabled

From: Lars Ingebrigtsen <[email-masked]>
Date: Fri, 22 Jul 2022 17:07:12 +0200

Juri Linkov <[email-masked]> 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