GNU bug report logs - #48093
28.0.50; feature/pgtk: multiple display: clipboard

Previous Next

Package: emacs;

Reported by: Rajeev N <rajeev.jnk <at> sivalik.com>

Date: Thu, 29 Apr 2021 01:06:02 UTC

Severity: normal

Tags: moreinfo

Found in version 28.0.50

Done: Lars Ingebrigtsen <larsi <at> gnus.org>

Bug is archived. No further changes may be made.

Full log


Message #19 received at 48093 <at> debbugs.gnu.org (full text, mbox):

From: Po Lu <luangruo <at> yahoo.com>
To: Rajeev N <rajeev.jnk <at> sivalik.com>
Cc: Lars Ingebrigtsen <larsi <at> gnus.org>, 48093 <at> debbugs.gnu.org
Subject: Re: bug#48093: 28.0.50; feature/pgtk: multiple display: clipboard
Date: Sat, 02 Jul 2022 13:05:55 +0800
Rajeev N <rajeev.jnk <at> sivalik.com> writes:

> sorry, I will not be able to spend any cycles on this anytime soon. 

Then I guess this has probably been fixed by the complete selection code
rewrite, which for the most part bypasses the buggy GTK layer.

However, there is one piece of code that still worries me:

  /* GC must not happen inside this segment.  */
  block_input ();
  gtk_selection_clear_targets (FRAME_GTK_WIDGET (f), selection_atom);

  if (VECTORP (targets))
    {
      gtargets = xzalloc (sizeof *gtargets * ASIZE (targets));
      ntargets = 0;

      for (i = 0; i < ASIZE (targets); ++i)
	{
	  if (SYMBOLP (AREF (targets, i)))
	    gtargets[ntargets++].target
	      = SSDATA (SYMBOL_NAME (AREF (targets, i)));
	}

      gtk_selection_add_targets (FRAME_GTK_WIDGET (f),
				 selection_atom, gtargets,
				 ntargets);

      xfree (gtargets);
    }
  unblock_input ();

Here, the GTK API is being used to announce the selection targets, since
the corresponding GDK APIs are not public and are badly abstracted, most
of them being specific to individual GDK backends.

I tested briefly with two Wayland displays and it seems to work fine for
me, but I don't use PGTK on a daily basis and thus cannot be sure.




This bug report was last modified 2 years and 325 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.