all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: David De La Harpe Golden <david@harpegolden.net>
To: Chong Yidong <cyd@stupidchicken.com>
Cc: 6956@debbugs.gnu.org
Subject: bug#6956: 24.0.50; pasting mouse selection in other session pastes only first word
Date: Sat, 04 Sep 2010 22:38:22 +0100	[thread overview]
Message-ID: <4C82BC4E.4080500@harpegolden.net> (raw)
In-Reply-To: <4C82AD90.5040003@harpegolden.net>

[-- Attachment #1: Type: text/plain, Size: 360 bytes --]

On 04/09/10 21:35, David De La Harpe Golden wrote:


> We _don't_ want a new kill ring entry for each new mouse-3 click in a
> different position for a given region activation, we want it to replace
> the front of kill-ring if it's extending a region that's already been
> saved to the kill ring previously in the same activation.
>

How about the attached?



[-- Attachment #2: mouse-save-then-kill-save-on-mdcr_r1.diff --]
[-- Type: text/x-patch, Size: 2771 bytes --]

=== modified file 'lisp/mouse.el'
--- lisp/mouse.el	2010-08-29 16:17:13 +0000
+++ lisp/mouse.el	2010-09-04 21:33:14 +0000
@@ -43,7 +43,11 @@
   :group 'mouse)
 
 (defcustom mouse-drag-copy-region nil
-  "If non-nil, mouse drag copies region to kill-ring."
+  "If non-nil, copy to kill-ring upon mouse adjustments of the region.
+
+For consistency this affects both actual mouse drag operations and
+`mouse-save-then-kill' (\\[mouse-save-then-kill]) operations that
+change the region."
   :type 'boolean
   :version "24.1"
   :group 'mouse)
@@ -1342,14 +1346,21 @@
 
 If the region is inactive, activate it temporarily.  Set mark at
 the original point, and move point to the position of CLICK.
+If `mouse-drag-copy-region' is non-nil, also save the region
+to the kill ring.
 
 If the region is already active, adjust it.  Normally, do this by
 moving point or mark, whichever is closer, to CLICK.  But if you
 have selected whole words or lines, move point or mark to the
 word or line boundary closest to CLICK instead.
+If `mouse-drag-copy-region' is non-nil, also save the region
+to the kill ring, replacing the previous kill corresponding
+to the already active region.
 
 If this command is called a second consecutive time with the same
-CLICK position, kill the region."
+CLICK position, kill the region (or delete it
+if `mouse-drag-copy-region' is non-nil - it will already
+have been saved to the kill ring by the previous click.)"
   (interactive "e")
   (mouse-minibuffer-check click)
   (let* ((posn     (event-start click))
@@ -1371,7 +1382,12 @@
      ((and (eq last-command 'mouse-save-then-kill)
 	   (eq click-pt mouse-save-then-kill-posn)
 	   (eq window (selected-window)))
-      (kill-region (mark t) (point))
+      (if mouse-drag-copy-region
+          ;; region already saved the previous click,
+          ;; don't make a duplicate entry, just delete
+          (delete-region (mark t) (point))
+        (kill-region (mark t) (point)))
+      (setq deactivate-mark t)
       (setq mouse-selection-click-count 0)
       (setq mouse-save-then-kill-posn nil))
 
@@ -1394,6 +1410,9 @@
 	  (goto-char (nth 1 range)))
 	(setq deactivate-mark nil)
 	(mouse-set-region-1)
+        (when mouse-drag-copy-region
+          ;; presumably region already copied to kill-ring once, so replace.
+          (kill-new (filter-buffer-substring (mark t) (point)) t))
 	;; Arrange for a repeated mouse-3 to kill the region.
 	(setq mouse-save-then-kill-posn click-pt)))
 
@@ -1405,6 +1424,8 @@
 	(if before-scroll (goto-char before-scroll)))
       (exchange-point-and-mark)
       (mouse-set-region-1)
+      (when mouse-drag-copy-region
+        (kill-new (filter-buffer-substring (mark t) (point))))
       (setq mouse-save-then-kill-posn click-pt)))))
 
 \f


  reply	other threads:[~2010-09-04 21:38 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-08-31 16:48 bug#6956: 24.0.50; pasting mouse selection in other session pastes only first word Drew Adams
2010-08-31 17:26 ` Eli Zaretskii
2010-08-31 18:13   ` Chong Yidong
2010-09-01 14:38     ` Eli Zaretskii
2010-09-04  7:18       ` Eli Zaretskii
2010-09-04  8:35         ` Jan Djärv
2010-09-04 11:07           ` Eli Zaretskii
2010-09-04 15:06             ` Drew Adams
2010-09-04 15:44               ` Eli Zaretskii
2010-09-04 15:15             ` Jan Djärv
2010-09-04 19:09             ` Chong Yidong
2010-09-04 20:35               ` David De La Harpe Golden
2010-09-04 21:38                 ` David De La Harpe Golden [this message]
2010-09-05  1:53                   ` Chong Yidong
2010-09-05  5:33                     ` David De La Harpe Golden
2010-09-05 14:36                     ` David De La Harpe Golden
2010-09-05  3:09                   ` Eli Zaretskii
2010-09-05  4:48                     ` David De La Harpe Golden
2010-09-05  5:06                       ` Eli Zaretskii
2010-09-04 17:06           ` David De La Harpe Golden
2010-08-31 18:16   ` Drew Adams
2010-09-16 20:02 ` Eli Zaretskii
2010-09-16 23:51   ` Drew Adams
2010-09-17  8:01     ` Eli Zaretskii
     [not found]       ` <3BE2421F73AD4292AE8375CA3328663D@us.oracle.com>
2010-09-17 16:14         ` Eli Zaretskii
2010-09-17 16:20           ` Drew Adams
2010-09-17 17:03             ` Eli Zaretskii
2010-09-20 18:47               ` Drew Adams
2010-09-20 19:18                 ` Eli Zaretskii
2010-09-20 20:19                   ` Drew Adams
2010-09-20 20:43                   ` Drew Adams
2010-09-20 20:52                     ` Eli Zaretskii
2010-09-20 21:41                       ` Drew Adams
2010-09-20 21:53                         ` Eli Zaretskii
2010-09-20 22:24                           ` Drew Adams
2010-09-21  4:08                             ` Eli Zaretskii
2010-09-21 14:20                               ` Drew Adams

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4C82BC4E.4080500@harpegolden.net \
    --to=david@harpegolden.net \
    --cc=6956@debbugs.gnu.org \
    --cc=cyd@stupidchicken.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.