This is the mail archive of the cygwin-xfree mailing list for the Cygwin XFree86 project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Is Cygwin X server causing ubuntu eclipse to copy to the clipboard on selection?


On 25/06/2012 16:53, David Karr wrote:
> On Mon, Jun 25, 2012 at 6:22 AM, Jon TURNEY wrote:
>> On 23/06/2012 00:33, David Karr wrote:
>>> I run Eclipse on win7, and also Eclipse on Ubuntu, displaying the
>>> window on my Win7 box, using Cygwin.
>>>
>>> One annoyance I have with the latter is that when I select a region of
>>> text, it appears to automatically copy that region to the clipboard,
>>> instead of waiting for me to press Ctrl-C.
>>>
>>> I asked about this on the eclipse forums, and they said Ubuntu Eclipse
>>> doesn't do this, and it's likely being done by my X server.
>>
>> Yes, the X server is copying the selected text to the Windows clipboard.
>>
>> Let me try to explain why:
>>
>> X supports an arbitrary number of 'selections', the two of interest here are
>> the PRIMARY selection (which conventionally contains some data which the user
>> has selected) and the CLIPBOARD selection (which conventionally contains some
>> data that the user has explicitly requested to be 'copied' to the clipboard)
>>
>> The Cygwin X server monitors these selections for changes, and makes text in
>> the most recently changed one available for pasting from the Windows clipboard.
> 
> It seems like you've just explained to me by using the word
> "conventionally" that the behaviour of the Cygwin X server doesn't
> behave "conventionally".

Sorry, no.

I am using "conventionally" here in the sense of "for an application which
conforms to the X 'Inter-Client Communication Conventions Manual' [1]"

The Cygwin X server (or rather, it's built-in clipboard client which
integrates with the native Windows clipboard) conforms to these conventions.
It would be a bug in that client if it was altering the X CLIPBOARD selection
when the PRIMARY selection is changed.

I don't think that is happening, but you don't have to take my word for the
contents of these selections, you can examine them for yourself using 'xsel
-p' and 'xsel -b'.

The question you are asking ("Is Cygwin X server causing ubuntu eclipse to
copy to the clipboard on selection?") doesn't distinguish between the Windows
clipboard and the X clipboard.  I assume that the problem you are reporting is
with pasting to a Windows application.

To reiterate, the clipboard integration client adopts a simple heuristic to
determine which of the PRIMARY or CLIPBOARD X selections to place in the
Windows clipboard: it uses the most recently changed one [2]

I agree it would be nice if this behaved more in line with user expectations
in this specific case.  Ideally this would be achieved by improving this
heuristic somehow, rather than adding another command line option.

So, again, this is acknowledged as something which could be improved, the
problem is understood, but "someone has to do it".

>> So, if you select some text in eclipse after copying some text to the
>> clipboard, you will get the selected text, not the copied text, when you paste
>> in Windows.
>>
>> I can understand this behaviour is confusing to people who are expecting the X
>> clipboard to behave like the Windows one.
>>
>> It has been suggested a few times that we should not monitor the PRIMARY
>> selection, but some very popular X applications (such as xterm and emacs) only
>> use the PRIMARY selection by default.  It's also been suggested that
>> monitoring the PRIMARY selection should be configurable somehow, but I'm not
>> sure that a global configuration option would lead to very useful behaviour.
> 
> I just verified that I can easily configure Emacs to not copy to the
> clipboard on selection, and to replace the selection on yank.  It's
> unfortunate that I can't directly configure Eclipse to do this, but I
> would be surprised if they would have thought to implement this, as
> Eclipse normally works "the way you expect" on both Ubuntu and
> Windows.  It's only when displaying the Ubuntu window on Windows
> through Cygwin that it behaves "unconventionally".

I'm not sure what you are suggesting here, but changing the default behaviour
of the Cygwin X server so it requires everyone who uses it to reconfigure
their emacs is not an acceptable solution.

[1] http://www.x.org/releases/current/doc/xorg-docs/icccm/icccm.html
[2] I slightly simplify here.  The XFIXES extension only allows monitoring for
changes of selection ownership, only the application owning a selection knows
when it changes.  This can cause other problems, see
https://bugs.freedesktop.org/show_bug.cgi?id=5735

-- 
Jon TURNEY
Volunteer Cygwin/X X Server maintainer

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://x.cygwin.com/docs/
FAQ:                   http://x.cygwin.com/docs/faq/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]