Subject: bug#71656: secondary selection and mouse-drag-secondary-pasting is broken in 29.3 under wayland

From: John Heidemann <[email-masked]>
Date: Thu, 20 Jun 2024 13:16:01 -0700

On Thu, 20 Jun 2024 14:39:28 +0800, Po Lu wrote: 
>Eli Zaretskii <[email-masked]> writes:
>
>>> From: John Heidemann <[email-masked]>
>>> Date: Wed, 19 Jun 2024 12:33:04 -0700
>>> 
>>> Since Fedora 40 and emacs-29.3, mouse-drag-secondary-pasting has thrown
>>> the error "Could not assert ownership over selection: SECONDARY".
>>> 
>>> This is in a default Fedora 40 install with the emacs-29.3-6.fc40.x86_64
>>> package, running under Wayland.  I think F40 started using native
>>> wayland and gtk, which perhaps lost support for secondary selections?
>>> 
>>> 
>>> To reproduce:
>>> 
>>> start emacs -q
>>> 
>>> In *scratch* run:
>>> 
>>> (require 'mouse-copy)
>>> (global-set-key [M-down-mouse-1] 'mouse-drag-secondary-pasting)
>>> 
>>> Then hold down meta and right click and drag over a word.
>>> 
>>> Expected behavior:
>>> 
>>> The text you drag over should be copied to the current location.
>>> 
>>> Actual behavior:
>>> error "Could not assert ownership over selection: SECONDARY"
>>> and no copying happens.
>>> 
>>> 
>>> I was the original author of mouse-copy.el and I miss its easy
>>> plan-9-like copy what I just moused over.
>>> 
>>> I'm happy to patch its code, but I'd like to know what changed so I can
>>> know what I need to work around.
>>> 
>>> 
>>> Thanks for any pointers,
>>
>> Thanks.  Po Lu, can you please look into and fix this, or help John
>> fix it?
>
>John, this error is signaled when the SECONDARY selection is not
>implemented by your Wayland compositor.  I don't believe this is any
>responsibility of ours, and hence your Lisp code should resort to a
>different selection on PGTK systems.

Thank you.  It looks like large parts of mouse.el (all the functions
ending in -secondary) and select.el are X11-specific then and will not
work on Wayland.

It looks like there is already some work in select.el to make it ignore
primary/secondary/clipboard for windows.  Perhaps analogous code needs
to go in to Wayland, so that downstream code (such as mouse.el and
mouse-copy.el) would continue to work?

   -John