emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Copy and paste from Emacs 29 to Thunderbird doesn’t work


From: Tobias Bading
Subject: Copy and paste from Emacs 29 to Thunderbird doesn’t work
Date: Sun, 30 Apr 2023 15:01:37 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.9.0

Hi.

I think I discovered a new kind of bug. It’s not like a heisenbug that
tries to prevent people from studying it properly — this one tries to
prevent being *reported*! XD

When I was done composing my last mail in Emacs 29
(https://lists.gnu.org/archive/html/emacs-devel/2023-04/msg00771.html),
I tried to copy and paste the text into Thunderbird. Emphasis on trying.
C-v didn’t work. Nothing happened. Double-clicked just a single word in
Emacs, C-v in Thunderbird… nope, nothing. Clicked into Thunderbird’s
‘Subject’ field and pressed C-v… now I see my copied word! What the f…?

Tried the same in Emacs 26 — no problems.

After installing xclip and starting to wonder about the bazillion different
selection formats, I wasn’t really in the mood for reading entire books
about the X11 primary selection and clipboard. So I simply grep’d the
sources for “OWNER_OS” because I have no idea why anyone would want to
associate the operating system’s type with a selection. That led to
selection-converter-alist in select.el.

Long story short, replacing Emacs 29’s selection-converter-alist with the
one from Emacs 26 seems to fix the problem, i.e.:

diff --git a/lisp/select.el b/lisp/select.el
index 7f089c62dd..7f885eafcf 100644
--- a/lisp/select.el
+++ b/lisp/select.el
@@ -894,14 +894,6 @@ xselect-convert-to-dt-netfile
     (COMPOUND_TEXT . xselect-convert-to-string)
     (STRING . xselect-convert-to-string)
     (UTF8_STRING . xselect-convert-to-string)
-    (text/plain . xselect-convert-to-string)
-    (text/plain\;charset=utf-8 . xselect-convert-to-string)
-        (text/uri-list . (xselect-uri-list-available-p
-                          . xselect-convert-to-text-uri-list))
-        (text/x-xdnd-username . (xselect-dnd-target-available-p
-                                 . xselect-convert-to-username))
-        (FILE . (xselect-uri-list-available-p
-                 . xselect-convert-to-xm-file))
     (TARGETS . xselect-convert-to-targets)
     (LENGTH . xselect-convert-to-length)
     (DELETE . xselect-convert-to-delete)
@@ -917,13 +909,7 @@ xselect-convert-to-dt-netfile
     (ATOM . xselect-convert-to-atom)
     (INTEGER . xselect-convert-to-integer)
     (SAVE_TARGETS . xselect-convert-to-save-targets)
-    (_EMACS_INTERNAL . xselect-convert-to-identity)
-        (XmTRANSFER_SUCCESS . (xselect-dnd-target-available-p
-                               . xselect-convert-xm-special))
-        (XmTRANSFER_FAILURE . (xselect-dnd-target-available-p
-                               . xselect-convert-xm-special))
-        (_DT_NETFILE . (xselect-dt-netfile-available-p
-                        . xselect-convert-to-dt-netfile))))
+    (_EMACS_INTERNAL . xselect-convert-to-identity)))

 (provide 'select)

Of course that’s just a quick and dirty hack which will probably lead to
other problems. Could someone who knows this stuff please look into this?

BTW, my Emacs runs with select-enable-clipboard and select-enable-primary
both set to t.

Tobias

PS: please keep me CC’d, thanks



reply via email to

[Prev in Thread] Current Thread [Next in Thread]