unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* Selection changes
@ 2010-07-14 18:08 Chong Yidong
  2010-07-14 18:39 ` Jeff Clough
                   ` (4 more replies)
  0 siblings, 5 replies; 39+ messages in thread
From: Chong Yidong @ 2010-07-14 18:08 UTC (permalink / raw)
  To: emacs-devel

I've changed the way Emacs interacts with the X clipboard and selection,
to bring it in line with how other X applications behave.  For most
users, the main visible change is that `kill' and `yank' now interact
with the clipboard.  One advantage of this change is that the
Cut/Copy/Paste menu bar items are just the usual C-w/M-w/C-y commands.

I believe that this change should be pretty much seamless, but let me
know if there is any problems.



^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: Selection changes
  2010-07-14 18:08 Selection changes Chong Yidong
@ 2010-07-14 18:39 ` Jeff Clough
  2010-07-14 18:53   ` Chong Yidong
  2010-07-14 19:25 ` Yann Hodique
                   ` (3 subsequent siblings)
  4 siblings, 1 reply; 39+ messages in thread
From: Jeff Clough @ 2010-07-14 18:39 UTC (permalink / raw)
  To: Chong Yidong; +Cc: emacs-devel

On Wed, 2010-07-14 at 14:08 -0400, Chong Yidong wrote:
> I've changed the way Emacs interacts with the X clipboard and selection,
> to bring it in line with how other X applications behave.  For most
> users, the main visible change is that `kill' and `yank' now interact
> with the clipboard.  One advantage of this change is that the
> Cut/Copy/Paste menu bar items are just the usual C-w/M-w/C-y commands.

Crap.  What's the variable I frob again to turn this off so Emacs stays
away from my clipboard?

> I believe that this change should be pretty much seamless, but let me
> know if there is any problems.

For what it's worth, I like the Emacs kill-ring to be completely
divorced from the X clipboard selection.  This creates two different
"worlds", to be sure, but I kill/yank text in Emacs all day and make
heavy use of jumping around the kill-ring.  The clipboard selection is
much more ephemeral and without such history.  I just tend to use
kill/yank in a different way than copy/paste.

When it's necessary to move text between these worlds, the primary
selection and middle-click are more than enough.

Again, just my personal preference.

Jeff





^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: Selection changes
  2010-07-14 18:39 ` Jeff Clough
@ 2010-07-14 18:53   ` Chong Yidong
  2010-07-14 19:02     ` Jeff Clough
  0 siblings, 1 reply; 39+ messages in thread
From: Chong Yidong @ 2010-07-14 18:53 UTC (permalink / raw)
  To: Jeff Clough; +Cc: emacs-devel

Jeff Clough <jeff@chaosphere.com> writes:

> On Wed, 2010-07-14 at 14:08 -0400, Chong Yidong wrote:
>> I've changed the way Emacs interacts with the X clipboard and selection,
>> to bring it in line with how other X applications behave.  For most
>> users, the main visible change is that `kill' and `yank' now interact
>> with the clipboard.  One advantage of this change is that the
>> Cut/Copy/Paste menu bar items are just the usual C-w/M-w/C-y commands.
>
> Crap.  What's the variable I frob again to turn this off so Emacs stays
> away from my clipboard?

x-select-enable-clipboard

> I kill/yank text in Emacs all day and make heavy use of jumping around
> the kill-ring.  The clipboard selection is much more ephemeral and
> without such history.  I just tend to use kill/yank in a different way
> than copy/paste.

Nothing stops you from continuing to do this, if you don't care about
the fact that Emacs is overwriting the clipboard selection (most users
won't care since, as you say, its contents are ephemeral).



^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: Selection changes
  2010-07-14 18:53   ` Chong Yidong
@ 2010-07-14 19:02     ` Jeff Clough
  0 siblings, 0 replies; 39+ messages in thread
From: Jeff Clough @ 2010-07-14 19:02 UTC (permalink / raw)
  To: Chong Yidong; +Cc: emacs-devel

On Wed, 2010-07-14 at 14:53 -0400, Chong Yidong wrote:
> Jeff Clough <jeff@chaosphere.com> writes:
> 
> > On Wed, 2010-07-14 at 14:08 -0400, Chong Yidong wrote:
> >> I've changed the way Emacs interacts with the X clipboard and selection,
> >> to bring it in line with how other X applications behave.  For most
> >> users, the main visible change is that `kill' and `yank' now interact
> >> with the clipboard.  One advantage of this change is that the
> >> Cut/Copy/Paste menu bar items are just the usual C-w/M-w/C-y commands.
> >
> > Crap.  What's the variable I frob again to turn this off so Emacs stays
> > away from my clipboard?
> 
> x-select-enable-clipboard

Thanks.

> > I kill/yank text in Emacs all day and make heavy use of jumping around
> > the kill-ring.  The clipboard selection is much more ephemeral and
> > without such history.  I just tend to use kill/yank in a different way
> > than copy/paste.
> 
> Nothing stops you from continuing to do this, if you don't care about
> the fact that Emacs is overwriting the clipboard selection (most users
> won't care since, as you say, its contents are ephemeral).

Um, but I *do* care.  I don't want Emacs and the clipboard selection to
interact at all.  I certainly don't want a kill in Emacs (which happens
about a thousand times a day) to clobber what's on my clipboard (which I
can never get back).

Thanks again for the reminder on the variable name.

Jeff




^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: Selection changes
  2010-07-14 18:08 Selection changes Chong Yidong
  2010-07-14 18:39 ` Jeff Clough
@ 2010-07-14 19:25 ` Yann Hodique
  2010-07-14 20:28   ` Chong Yidong
  2010-07-14 23:51 ` David De La Harpe Golden
                   ` (2 subsequent siblings)
  4 siblings, 1 reply; 39+ messages in thread
From: Yann Hodique @ 2010-07-14 19:25 UTC (permalink / raw)
  To: emacs-devel

>>>>> "Chong" == Chong Yidong <cyd@stupidchicken.com> writes:

> I've changed the way Emacs interacts with the X clipboard and selection,
> to bring it in line with how other X applications behave.  For most
> users, the main visible change is that `kill' and `yank' now interact
> with the clipboard.  One advantage of this change is that the
> Cut/Copy/Paste menu bar items are just the usual C-w/M-w/C-y commands.

> I believe that this change should be pretty much seamless, but let me
> know if there is any problems.

Hi,

I'm a bit confused by those changes. I used to have

--8<---------------cut here---------------start------------->8---
(setq mouse-drag-copy-region nil)
(mouse-sel-mode 1)
--8<---------------cut here---------------end--------------->8---

and was pretty happy with the behavior. Now it seems I cannot retrieve
the same behavior as `mouse-sel-mode' is apparently broken
("mouse-sel-selection-overlay: No overlay corresponding to PRIMARY
selection" whenever I try to select something). Which forces me to (setq
mouse-drag-copy-region t) to be able to select with the mouse, but this
in turn pollutes my kill-ring...

What I'd like to have is:
- mouse selection/middle click working as in any application
  (interacting with X primary selection), but *without* interacting with
  neither kill-ring, nor clipboard
- kill-ring being totally independent of clipboard
- (optionally) dedicated functions to yank/kill from/to
  clipboard/primary/secondary

I don't mind changing my configuration to accommodate the new defaults,
but can't find the relevant information. Any useful pointers to
magic variables?

Thanks a lot,

Yann.

-- 
It is your fate, forgetfulness.  All of the old lessons of life, you lose and 
gain and lose and gain again.

  -- Leto II, the Voice of Dar-es-Balat




^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: Selection changes
  2010-07-14 19:25 ` Yann Hodique
@ 2010-07-14 20:28   ` Chong Yidong
  0 siblings, 0 replies; 39+ messages in thread
From: Chong Yidong @ 2010-07-14 20:28 UTC (permalink / raw)
  To: Yann Hodique; +Cc: emacs-devel

Yann Hodique <yann.hodique@gmail.com> writes:

> I'm a bit confused by those changes. I used to have
>
> (setq mouse-drag-copy-region nil)
> (mouse-sel-mode 1)
>
> and was pretty happy with the behavior. Now it seems I cannot retrieve
> the same behavior as `mouse-sel-mode' is apparently broken
> ("mouse-sel-selection-overlay: No overlay corresponding to PRIMARY
> selection" whenever I try to select something). Which forces me to (setq
> mouse-drag-copy-region t) to be able to select with the mouse, but this
> in turn pollutes my kill-ring...

I think mouse-sel-mode was somewhat bitrotted even prior to this change.
I will take a look over the next few days.



^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: Selection changes
  2010-07-14 18:08 Selection changes Chong Yidong
  2010-07-14 18:39 ` Jeff Clough
  2010-07-14 19:25 ` Yann Hodique
@ 2010-07-14 23:51 ` David De La Harpe Golden
  2010-07-16  1:31 ` Richard Stallman
  2010-07-17  0:44 ` David De La Harpe Golden
  4 siblings, 0 replies; 39+ messages in thread
From: David De La Harpe Golden @ 2010-07-14 23:51 UTC (permalink / raw)
  To: Chong Yidong; +Cc: Emacs developers

On 14/07/10 19:08, Chong Yidong wrote:

> I believe that this change should be pretty much seamless, but let me
> know if there is any problems.
>

'fraid the no-zero-length-region change to deactivate-mark, while 
well-intentioned, is wrong - by that stage emacs may have already taken 
ownership of the selection, and pointed it at the buffer.

e.g. try C-SPC C-SPC, move point a few chars, middle click, middle 
click, middle click, Yeuch! Or try making the region nonzero sized then 
zero sized again.

So please remove from deactivate-mark the
(not (eq (region-beginning) (region-end)))
for now - not having it is IMO the lesser of two evils, it's _way_ too 
easy to apparently randomize (well, it's not actually random, but users 
aren't going to appreciate rhat) primary with it there.  At least IMO.

Really, emacs needs to take ownership of the primary selection and set 
it to the buffer /the first time in each region activation that the 
active region becomes nonzero sized/.

Remember when the emacs-level selection val is set to a buffer object, 
the buffer is _lazily_ queried for its point-mark span if/when other X 
clients ask for the selection, so if it manages to stay set to the 
buffer past deactivation of the region you'll have a selection depending 
on where the mark and point are at that time.  Hence freezing off the 
string as the selection in deactivate-mark.

I'm out of "emacs time" for today for actual implementation of a 
proposal for a fix - I'll have time at the weekend if you haven't got to 
it by then...






^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: Selection changes
@ 2010-07-16  1:00 Angelo Graziosi
  2010-07-16  9:33 ` David De La Harpe Golden
  2010-07-16 12:14 ` Angelo Graziosi
  0 siblings, 2 replies; 39+ messages in thread
From: Angelo Graziosi @ 2010-07-16  1:00 UTC (permalink / raw)
  To: emacs

Chong Yidong wrote:
> I believe that this change should be pretty much seamless, but let me
> know if there is any problems.
>

After these changes something is not working rightly with Copy/Paste. 
Nor on GNU/Linux Kubuntu nor on Cygwin (both GTK build of trunk).

On Kubuntu often it paste the wrong test (both using C-y and mouse-2). 
Only after playing with it some time, it seems to work.

On Cygwin, *usually*, using C-y is slower. If I select some test with 
the mouse then, when I type C-y to paste it, I get 'Mark set' in the 
minibuffer, and the text is pasted only after 5-10 second (the 'clock' 
shows up). Using mouse-2, instead, seems to work fine.

Not always, one can reproduce the above exactly :(.

In both systems I have started Emacs with 'emacs -Q'.

Ciao,
Angelo.



^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: Selection changes
  2010-07-14 18:08 Selection changes Chong Yidong
                   ` (2 preceding siblings ...)
  2010-07-14 23:51 ` David De La Harpe Golden
@ 2010-07-16  1:31 ` Richard Stallman
  2010-07-16  2:49   ` Miles Bader
  2010-07-17  0:44 ` David De La Harpe Golden
  4 siblings, 1 reply; 39+ messages in thread
From: Richard Stallman @ 2010-07-16  1:31 UTC (permalink / raw)
  To: Chong Yidong; +Cc: emacs-devel

    I've changed the way Emacs interacts with the X clipboard and selection,
    to bring it in line with how other X applications behave.  For most
    users, the main visible change is that `kill' and `yank' now interact
    with the clipboard.  One advantage of this change is that the
    Cut/Copy/Paste menu bar items are just the usual C-w/M-w/C-y commands.

I have a vague recollection that it worked this way long ago and it
caused problems for users.  That was in the 90s and I don't remember
details.



^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: Selection changes
  2010-07-16  1:31 ` Richard Stallman
@ 2010-07-16  2:49   ` Miles Bader
  0 siblings, 0 replies; 39+ messages in thread
From: Miles Bader @ 2010-07-16  2:49 UTC (permalink / raw)
  To: rms; +Cc: Chong Yidong, emacs-devel

Richard Stallman <rms@gnu.org> writes:
> I have a vague recollection that it worked this way long ago and it
> caused problems for users.  That was in the 90s and I don't remember
> details.

It's certainly worth trying again though -- 

   (1) I think the emacs infrastructure for handling this stuff has been
   changed quite a bit

   (2) IIRC, one of the main complaints was just speed, and machines/etc
   are _much_ faster now (even your slow laptop ... :)

   (3) I've personally had it enabled for years, with zero problems

IMHO, it really does make using emacs in conjunction with other X apps
much nicer (things "just work"), and is clearly what noobs expect.

-Miles

-- 
Road, n. A strip of land along which one may pass from where it is too
tiresome to be to where it is futile to go.



^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: Selection changes
  2010-07-16  1:00 Angelo Graziosi
@ 2010-07-16  9:33 ` David De La Harpe Golden
  2010-07-17 23:49   ` Angelo Graziosi
  2010-07-16 12:14 ` Angelo Graziosi
  1 sibling, 1 reply; 39+ messages in thread
From: David De La Harpe Golden @ 2010-07-16  9:33 UTC (permalink / raw)
  To: emacs; +Cc: Chong Yidong, Angelo Graziosi

On 16/07/10 02:00, Angelo Graziosi wrote:

> Nor on GNU/Linux Kubuntu nor on Cygwin (both GTK build of trunk).
>
> On Kubuntu often it paste the wrong test (both using C-y and mouse-2).

At the moment there is a known issue which will cause the wrong text to 
be pasted in sometimes as per my other recent mail.

Just in case: also note C-y and mouse-2 should now be behaving more like 
C-v and mouse-2 in non-emacs, it will require a more precise 
reproduction recipe to determine if "wrong" is really-wrong or 
correct-but-different-to-prior-defaults behaviour (or right now, the 
known issue).

> On Cygwin, *usually*, using C-y is slower. If I select some test with
> the mouse then, when I type C-y to paste it, I get 'Mark set' in the
> minibuffer, and the text is pasted only after 5-10 second (the 'clock'
> shows up).

You mean you were - starting from "emacs -Q" - selecting some text with 
the mouse, _without_ hitting C-w/M-w to cut/copy it, then successfully 
inserting it with C-y?

If so, that shouldn't have worked at all (!).

...I see the reporter of #6637 appears to have been using cygwin's x11.
In this instance, the problem _might_ not be on emacs' side, especially 
given the long pause you describe: cygwin's x11 server may be doing 
something peculiar in its handling of x11 clipboard and/or primary, 
especially since it probably tries to integrate somehow with the w32 
native clipboard facilities.






^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: Selection changes
  2010-07-16  1:00 Angelo Graziosi
  2010-07-16  9:33 ` David De La Harpe Golden
@ 2010-07-16 12:14 ` Angelo Graziosi
  1 sibling, 0 replies; 39+ messages in thread
From: Angelo Graziosi @ 2010-07-16 12:14 UTC (permalink / raw)
  To: emacs; +Cc: tim.vanholder

On Cygwin, I can confirm all is desribed here [*]. Another recipe, for 
Cygwin, is:

emacs -Q &

double click (mouse-1) on a word, for example 'buffer'. With the down 
arrow go to the bottom of the buffer and then C-y: it takes about 4-5 
second, and the mouse cursor switches to its "please wait" (clock).


On *Kubuntu 10.04* the things are a little different but wrong in any 
case. Following the step described here[*], at point 4) it pastes casual 
text, usually what is found in the clipboard. For example, adding the 
step 0):

0) with your browser, copy a link address with mouse-3 | 'Copy link 
address' menu item.

At step 4), it pastes the link, not the scartch buffer comment!

As described here [*], all seems to work as expected, if one adds

(setq x-select-clipboard-enable nil)

to .emacs file.

Ciao,
Angelo.

---
[*] http://lists.gnu.org/archive/html/bug-gnu-emacs/2010-07/msg00429.html


Il 16/07/2010 3.00, Angelo Graziosi ha scritto:
> Chong Yidong wrote:
>> I believe that this change should be pretty much seamless, but let me
>> know if there is any problems.
>>
>
> After these changes something is not working rightly with Copy/Paste.
> Nor on GNU/Linux Kubuntu nor on Cygwin (both GTK build of trunk).
>
> On Kubuntu often it paste the wrong test (both using C-y and mouse-2).
> Only after playing with it some time, it seems to work.
>
> On Cygwin, *usually*, using C-y is slower. If I select some test with
> the mouse then, when I type C-y to paste it, I get 'Mark set' in the
> minibuffer, and the text is pasted only after 5-10 second (the 'clock'
> shows up). Using mouse-2, instead, seems to work fine.
>
> Not always, one can reproduce the above exactly :(.
>
> In both systems I have started Emacs with 'emacs -Q'.




^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: Selection changes
  2010-07-14 18:08 Selection changes Chong Yidong
                   ` (3 preceding siblings ...)
  2010-07-16  1:31 ` Richard Stallman
@ 2010-07-17  0:44 ` David De La Harpe Golden
  2010-07-17  1:02   ` Miles Bader
  4 siblings, 1 reply; 39+ messages in thread
From: David De La Harpe Golden @ 2010-07-17  0:44 UTC (permalink / raw)
  To: Chong Yidong; +Cc: emacs-devel

On 14/07/10 19:08, Chong Yidong wrote:
> I've changed the way Emacs interacts with the X clipboard and selection,
> to bring it in line with how other X applications behave.


Erk. So... x-select-enable-primary is apparently still on by default.

N.B. that definitely needs to be _off_ for bringing emacs in line with 
other apps.  If it's on, it means C-y inserts primary and pushes primary 
onto the kill ring.





^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: Selection changes
  2010-07-17  0:44 ` David De La Harpe Golden
@ 2010-07-17  1:02   ` Miles Bader
  2010-07-17  2:28     ` David De La Harpe Golden
  0 siblings, 1 reply; 39+ messages in thread
From: Miles Bader @ 2010-07-17  1:02 UTC (permalink / raw)
  To: David De La Harpe Golden; +Cc: Chong Yidong, emacs-devel

David De La Harpe Golden <david@harpegolden.net> writes:
> N.B. that definitely needs to be _off_ for bringing emacs in line with
> other apps.  If it's on, it means C-y inserts primary and pushes primary
> onto the kill ring.

Why is that bad?

After all absolute consistency in the sense of "do _exactly_ what other
apps do" is not the goal.  The goal is for Emacs to work smoothly and
intuitively with other apps -- and those other apps include those which
use selections rather than the clipboard.

I'm not arguing based on principle, but rather because I've been using
it that way (with x-select-enable-primary set to t) for many years with
many other standard apps of both sorts, and it seems to work almost
perfectly this way.  So I'm very wary of changing it for polemic reasons.

In particular:

  * selecting some text in a cut/past style app, and invoking "copy" in
    that app, should allow the copied text to be pasted in emacs with
    C-y.

  * selecting some text in a selection-using app (e.g. xterm) should
    allow the selected text to be pasted in emacs with C-y.

Thanks,

-Miles

-- 
Bore, n. A person who talks when you wish him to listen.



^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: Selection changes
  2010-07-17  1:02   ` Miles Bader
@ 2010-07-17  2:28     ` David De La Harpe Golden
  2010-07-17  2:56       ` Chong Yidong
  0 siblings, 1 reply; 39+ messages in thread
From: David De La Harpe Golden @ 2010-07-17  2:28 UTC (permalink / raw)
  To: Miles Bader; +Cc: Chong Yidong, emacs-devel

On 17/07/10 02:02, Miles Bader wrote:
> David De La Harpe Golden<david@harpegolden.net>  writes:
>> N.B. that definitely needs to be _off_ for bringing emacs in line with
>> other apps.  If it's on, it means C-y inserts primary and pushes primary
>> onto the kill ring.
>
> Why is that bad?
>

Shrug. It's  not what other apps do, and what's more, emacs behaviour 
when both the x-select-enables are turned on at once is particularly 
strange (thanks mostly to x-cut-buffer-or-selection-value's desperate 
attempts to please)

> I'm not arguing based on principle, but rather because I've been using
> it that way (with x-select-enable-primary set to t)
 > for many years with many other standard apps of both sorts,
 > and it seems to work almost perfectly this way.

Perhaps for you - but you, like myself, know what's going on under the 
hood.  To someone who has only used Mac/Windows/fd.o-x11, it's plain 
bizarre.

[Anyway, this is only about what the default should be, you can still 
turn on the option if you like it.]

> In particular:
>
>    * selecting some text in a cut/past style app, and invoking "copy" in
>      that app, should allow the copied text to be pasted in emacs with
>      C-y.
>

Remember that primary is /still set/ by "cut/paste" style apps that set 
clipboard on cut/paste, they still set primary on selecting text.

with both x-select-enables on:

C-y in emacs gives you clipboard for a while, until you select something 
else in emacs, which causes emacs to set and prefer primary, then it 
gives you primary for a bit when you C-y (or the kill ring head), then 
you go "wtf?" and select then C-c again in $app, and you get clipboard 
for a bit when you C-y in emacs, until you select more text, then C-y 
gives you primary, but then you C-v in $app and you still get clipboard, 
but C-y in emacs still gives you primary...

i.e. emacs C-y has magically morphed (as far as the end user is 
concerned) from acting like $app C-v to acting like $app mouse-2.

And then some helpful emacser turns around and tells a newbie "oh just 
turn on cua mode"!  but what cua mode does is make emacs C-v act like
emacs C-y. Since emacs C-y doesn't act like non-emacs C-v, turning on 
cua mode still doesn't make emacs C-v act like non-emacs C-v.


*** So please, turn on one or the other of x-select-enable-primary or
x-select-enable-clipboard by default, not both at once.


>    * selecting some text in a selection-using app (e.g. xterm) should
>      allow the selected text to be pasted in emacs with C-y.

With x-select-enable-primary off but with the mouse-2 rebound, it can 
still be inserted with mouse-2 as in other apps.

xterm itself, while IIRC still maintained, is not typically the terminal
emulator that gets launched when a user clicks "terminal" anymore:
e.g. in the terminal emulator I use (xfce4-terminal),  out of box, 
Shift-Ctrl-C will copy to clipboard and Shift-Ctrl-V will paste from 
clipboard. (Same shortcuts work out-of-box in the KDE terminal, konsole).





^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: Selection changes
  2010-07-17  2:28     ` David De La Harpe Golden
@ 2010-07-17  2:56       ` Chong Yidong
  2010-07-17  3:30         ` Miles Bader
                           ` (2 more replies)
  0 siblings, 3 replies; 39+ messages in thread
From: Chong Yidong @ 2010-07-17  2:56 UTC (permalink / raw)
  To: David De La Harpe Golden; +Cc: emacs-devel, Miles Bader

David De La Harpe Golden <david@harpegolden.net> writes:

> with both x-select-enables on:
>
> C-y in emacs gives you clipboard for a while, until you select
> something else in emacs, which causes emacs to set and prefer primary,
> then it gives you primary for a bit when you C-y (or the kill ring
> head), then you go "wtf?" and select then C-c again in $app, and you
> get clipboard for a bit when you C-y in emacs, until you select more
> text, then C-y gives you primary, but then you C-v in $app and you
> still get clipboard, but C-y in emacs still gives you primary...

Yes, with select-active-regions enabled, it is a serious problem if
C-SPC and making an active region messes with the primary.  So, for the
moment, I went ahead and changed x-select-enable-primary to nil, as you
requested.

But I think select-active-regions needs further improvement.  Perhaps
its default behavior should be as follows: for an active region created
using shift-selection or mouse dragging, Emacs supplies the region text
to primary.  When such a region is deactivated, Emacs disowns primary
(as some other apps do, tho not Firefox).  For an active region created
simply with C-SPC, no special x-selection handling should be performed.

We could give select-active-regions a new default value, `shift-select',
which would have the above meaning.



^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: Selection changes
  2010-07-17  2:56       ` Chong Yidong
@ 2010-07-17  3:30         ` Miles Bader
  2010-07-17  3:49           ` Chong Yidong
  2010-07-22 21:21           ` Drew Adams
  2010-07-17  3:50         ` David De La Harpe Golden
  2010-07-17 10:50         ` Wojciech Meyer
  2 siblings, 2 replies; 39+ messages in thread
From: Miles Bader @ 2010-07-17  3:30 UTC (permalink / raw)
  To: Chong Yidong; +Cc: emacs-devel, David De La Harpe Golden

Chong Yidong <cyd@stupidchicken.com> writes:
> But I think select-active-regions needs further improvement.  Perhaps
> its default behavior should be as follows: for an active region created
> using shift-selection or mouse dragging, Emacs supplies the region text
> to primary.  When such a region is deactivated, Emacs disowns primary
> (as some other apps do, tho not Firefox).  For an active region created
> simply with C-SPC, no special x-selection handling should be performed.

I don't like things that make selections magic depending on how they
were selected; it just makes the interface more confusing and
discourages people from learning new commands.

A selection should be a selection, to the greatest extent possible
(there are some exceptions, like shift-selections auto-deselecting, but
that's much less confusing because it's an immediate and visually
obvious effect, and fits people's shift-select muscle-memory).

-miles

-- 
Politeness, n. The most acceptable hypocrisy.



^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: Selection changes
  2010-07-17  3:30         ` Miles Bader
@ 2010-07-17  3:49           ` Chong Yidong
  2010-07-22 21:21           ` Drew Adams
  1 sibling, 0 replies; 39+ messages in thread
From: Chong Yidong @ 2010-07-17  3:49 UTC (permalink / raw)
  To: Miles Bader; +Cc: emacs-devel, David De La Harpe Golden

Miles Bader <miles@gnu.org> writes:

> I don't like things that make selections magic depending on how they
> were selected; it just makes the interface more confusing and
> discourages people from learning new commands.
>
> A selection should be a selection, to the greatest extent possible
> (there are some exceptions, like shift-selections auto-deselecting, but
> that's much less confusing because it's an immediate and visually
> obvious effect, and fits people's shift-select muscle-memory).

A valid point.  We can give the current system a shot; if ordinary
active regions grabbing the primary selection turns out not to be a
nuisance in practice, that is fine.



^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: Selection changes
  2010-07-17  2:56       ` Chong Yidong
  2010-07-17  3:30         ` Miles Bader
@ 2010-07-17  3:50         ` David De La Harpe Golden
  2010-07-17  3:55           ` Chong Yidong
  2010-07-17 10:50         ` Wojciech Meyer
  2 siblings, 1 reply; 39+ messages in thread
From: David De La Harpe Golden @ 2010-07-17  3:50 UTC (permalink / raw)
  To: Chong Yidong; +Cc: Miles Bader, emacs-devel

On 17/07/10 03:56, Chong Yidong wrote:
>  So, for the
> moment, I went ahead and changed x-select-enable-primary to nil, as you
> requested.
>

Thanks, sorry for the rant. It's 4:50am, time for bed...

The bad "(not (eq (region-beginning) (region-end)))" check is still 
present in deactivate-mark (~simple.el line 3690) and should just be 
removed, I did [try to] explain the problem with it in a previous mail, 
that's a further source of some  poor behaviour (perhaps 
counterintuitively, but that's lazy stuff for you) that might be related 
to some of your points below.

> But I think select-active-regions needs further improvement.

No doubt...

 > Perhaps
> its default behavior should be as follows: for an active region created
> using shift-selection or mouse dragging, Emacs supplies the region text
> to primary.  When such a region is deactivated, Emacs disowns primary
> (as some other apps do, tho not Firefox).

Hmm. I do rather prefer the freezing off of the region into a string 
selection (line just after the bad check above) when deactivating rather 
than completely disowning - I mean, once you disown, the text won't be 
made available for middle-click insertion anymore and you'll be seeing 
"No primary selection" warnings a lot more.

Don't forget, the bad check mentioned above is negatively impacting 
behaviour in this specific area right now, if you remove the bad check 
line, the freezing off will work properly again.

> For an active region created
> simply with C-SPC, no special x-selection handling should be performed.
>

Well, not immediately owning primary on C-SPC /would/ stop most (all?) 
of the possible zero-length-region annoyances (unlike the "bad check") 
in their tracks, but it might be overkill to not own it at all if 
there's an (efficient) way to make emacs just defer taking ownership 
until the newly active region first becomes nonzero length.

That way, visibly highlighted regions would still act the same 
regardless of wether they were mouse/keyboardA/keyboardB created.






^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: Selection changes
  2010-07-17  3:50         ` David De La Harpe Golden
@ 2010-07-17  3:55           ` Chong Yidong
  2010-07-17  4:13             ` Chong Yidong
  0 siblings, 1 reply; 39+ messages in thread
From: Chong Yidong @ 2010-07-17  3:55 UTC (permalink / raw)
  To: David De La Harpe Golden; +Cc: Miles Bader, emacs-devel

David De La Harpe Golden <david@harpegolden.net> writes:

> The bad "(not (eq (region-beginning) (region-end)))" check is still
> present in deactivate-mark (~simple.el line 3690) and should just be
> removed, I did [try to] explain the problem with it in a previous
> mail, that's a further source of some  poor behaviour (perhaps
> counterintuitively, but that's lazy stuff for you) that might be
> related to some of your points below.

Let's come up with a proper fix, first.




^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: Selection changes
  2010-07-17  3:55           ` Chong Yidong
@ 2010-07-17  4:13             ` Chong Yidong
  2010-07-17 16:55               ` David De La Harpe Golden
  2010-07-18 16:24               ` David De La Harpe Golden
  0 siblings, 2 replies; 39+ messages in thread
From: Chong Yidong @ 2010-07-17  4:13 UTC (permalink / raw)
  To: David De La Harpe Golden; +Cc: emacs-devel, Miles Bader

Chong Yidong <cyd@stupidchicken.com> writes:

> David De La Harpe Golden <david@harpegolden.net> writes:
>
>> The bad "(not (eq (region-beginning) (region-end)))" check is still
>> present in deactivate-mark (~simple.el line 3690) and should just be
>> removed, I did [try to] explain the problem with it in a previous
>> mail, that's a further source of some  poor behaviour (perhaps
>> counterintuitively, but that's lazy stuff for you) that might be
>> related to some of your points below.
>
> Let's come up with a proper fix, first.

To be precise, the check is necessary because otherwise mouse-1 (which
deactivates the mark) destroys the primary selection.



^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: Selection changes
  2010-07-17  2:56       ` Chong Yidong
  2010-07-17  3:30         ` Miles Bader
  2010-07-17  3:50         ` David De La Harpe Golden
@ 2010-07-17 10:50         ` Wojciech Meyer
  2010-07-17 11:01           ` Miles Bader
  2 siblings, 1 reply; 39+ messages in thread
From: Wojciech Meyer @ 2010-07-17 10:50 UTC (permalink / raw)
  To: Chong Yidong; +Cc: Miles Bader, emacs-devel, David De La Harpe Golden

Chong Yidong <cyd@stupidchicken.com> writes:

> David De La Harpe Golden <david@harpegolden.net> writes:
>
>> with both x-select-enables on:
>>
>> C-y in emacs gives you clipboard for a while, until you select
>> something else in emacs, which causes emacs to set and prefer primary,
>> then it gives you primary for a bit when you C-y (or the kill ring
>> head), then you go "wtf?" and select then C-c again in $app, and you
>> get clipboard for a bit when you C-y in emacs, until you select more
>> text, then C-y gives you primary, but then you C-v in $app and you
>> still get clipboard, but C-y in emacs still gives you primary...
>
> Yes, with select-active-regions enabled, it is a serious problem if
> C-SPC and making an active region messes with the primary.  So, for the
> moment, I went ahead and changed x-select-enable-primary to nil, as you
> requested.
>
> But I think select-active-regions needs further improvement.  Perhaps
> its default behavior should be as follows: for an active region created
> using shift-selection or mouse dragging, Emacs supplies the region text
> to primary.  When such a region is deactivated, Emacs disowns primary
> (as some other apps do, tho not Firefox).  For an active region created
> simply with C-SPC, no special x-selection handling should be performed.
>
> We could give select-active-regions a new default value, `shift-select',
> which would have the above meaning.

General idea: how about having a prefix key (like C-M w)?

Next command which is kill or yank will perform operation on a native
clipboard.

Just 2 cents.

Wojciech



^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: Selection changes
  2010-07-17 10:50         ` Wojciech Meyer
@ 2010-07-17 11:01           ` Miles Bader
  0 siblings, 0 replies; 39+ messages in thread
From: Miles Bader @ 2010-07-17 11:01 UTC (permalink / raw)
  To: Wojciech Meyer; +Cc: Chong Yidong, David De La Harpe Golden, emacs-devel

Wojciech Meyer <wojciech.meyer@googlemail.com> writes:
> General idea: how about having a prefix key (like C-M w)?
>
> Next command which is kill or yank will perform operation on a native
> clipboard.

No, it should be as integrated as possible.  There's no reason not to do so.

-Miles

-- 
Happiness, n. An agreeable sensation arising from contemplating the misery of
another.



^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: Selection changes
  2010-07-17  4:13             ` Chong Yidong
@ 2010-07-17 16:55               ` David De La Harpe Golden
  2010-07-18 16:24               ` David De La Harpe Golden
  1 sibling, 0 replies; 39+ messages in thread
From: David De La Harpe Golden @ 2010-07-17 16:55 UTC (permalink / raw)
  To: Chong Yidong; +Cc: Miles Bader, emacs-devel

On 17/07/10 05:13, Chong Yidong wrote:
> Chong Yidong<cyd@stupidchicken.com>  writes:
>
>> David De La Harpe Golden<david@harpegolden.net>  writes:
>>
>>> The bad "(not (eq (region-beginning) (region-end)))" check is still
>>> present in deactivate-mark (~simple.el line 3690) and should just be
>>> removed, I did [try to] explain the problem with it in a previous
>>> mail, that's a further source of some  poor behaviour (perhaps
>>> counterintuitively, but that's lazy stuff for you) that might be
>>> related to some of your points below.
>>
>> Let's come up with a proper fix, first.

Indeed, that would be best. I do still intend to try something there 
over the next day.  In the meantime, here's another stab at showing one 
of the problems with the check, in the form of another example.

> To be precise, the check is necessary because otherwise mouse-1 (which
> deactivates the mark) destroys the primary selection.
>

Note that the check is only run if emacs has already owned the selection
(x-selection-owner-p ...) above it!  So the damage is already done, mostly.

Even if we were to fallback to just disowning the selection instead of 
freezing off the string as the selection /we'd still be wanting to 
remove the check/. I'm vaguely hopeful the below will help make clear why.

Try this:

^ => point location
@ => mouse pointer location, when relevant/known
A B etc => other location refs for instructions.

emacs -Q

| type hello world.

hello world
   A   B  C ^

| Now simulate a "clumsy click"
| (this might take a few attempts to trigger the issue):
| mouse-1-down at A.
| move mouse a little bit, but not enough to
|   create a non-zero-length visible region.
| mouse-1-up

+++ message shown "Mark set"

[Aside: recently every click, clumsy or not, is setting the mark and 
putting it on the mark ring. That sure is cluttering the mark ring]


hello world
   A   B  C
   ^
   @

| move point with cursor key to B.

hello world
   A   B  C
   @   ^

| move mouse to C.

hello world
   A   B  C
       ^  @


| mouse-2-click at C.

hello worllo world
   A      @      ^

| mouse-2-click again

hello worllo worllo world
   A      @      ^     X

| move mouse to X

hello worllo worllo world
   A             ^     X
                       @

| mouse-2-click

hello worllo worllo wollo worllo worllo world
Y A                   @                   ^


| move mouse to Y

hello worllo worllo wollo worllo worllo world
Y A                                       ^
@


| mouse-2-click

hehello worllo worllo wollo worllo worllo world
@ ^

| Blargh.


And note how similar the early parts of that sequence are to someone 
with a slight age-related tremor or similar using the mouse-1 to grossly 
reposition the point, then the keyboard for some fine adjustment.  (and 
the later parts to someone clicking randomly in confusion :-) )



N.B. There's a similar sequence with C-SPC C-SPC if you think just 
catching more "clumsy clicks" is addressing the underlying issue - it 
isn't (though might be independently good).



^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: Selection changes
  2010-07-16  9:33 ` David De La Harpe Golden
@ 2010-07-17 23:49   ` Angelo Graziosi
  2010-07-18 19:28     ` David De La Harpe Golden
  0 siblings, 1 reply; 39+ messages in thread
From: Angelo Graziosi @ 2010-07-17 23:49 UTC (permalink / raw)
  To: David De La Harpe Golden; +Cc: Chong Yidong, emacs

On the way of changes...

In the menu 'Edit', I read:

[...]
Cut    C-w
Copy  <C-insertchar>
[...]

If I have understood what means 'insertchar', I would suggest:

'Copy   C-INS'

it looks better, I think, or the more symmetric

'Copy   M-w'

Ciao,
Angelo.

PS. '<...-insertchar>' is very ugly and... unattractive!



^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: Selection changes
  2010-07-17  4:13             ` Chong Yidong
  2010-07-17 16:55               ` David De La Harpe Golden
@ 2010-07-18 16:24               ` David De La Harpe Golden
  1 sibling, 0 replies; 39+ messages in thread
From: David De La Harpe Golden @ 2010-07-18 16:24 UTC (permalink / raw)
  To: Chong Yidong; +Cc: emacs-devel

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

On 17/07/10 05:13, Chong Yidong wrote:
> Chong Yidong<cyd@stupidchicken.com>  writes:
>
>> David De La Harpe Golden<david@harpegolden.net>  writes:
>>
>>> The bad "(not (eq (region-beginning) (region-end)))" check is still
>>> present in deactivate-mark (~simple.el line 3690) and should just be
>>> removed, I did [try to] explain the problem with it in a previous
>>> mail, that's a further source of some  poor behaviour (perhaps
>>> counterintuitively, but that's lazy stuff for you) that might be
>>> related to some of your points below.
>>
>> Let's come up with a proper fix, first.
>
> To be precise, the check is necessary because otherwise mouse-1 (which
> deactivates the mark) destroys the primary selection.
>


Okay, just saw rev. 100841:

Do you still think the remaining zero-length problems (still present in 
certain situations) are worth addressing?

Personally I'm not all that bothered by them, but I've been using an 
emacs with select-active-regions on for some time before any attempt to 
address them, so may have adjusted to avoid gotchas.

Anyway, I did say I'd propose something:

My initial stab wound up fugly, negating the efficiency of the lazy 
buffer query approach, doing buffer-substring ops before every command
to freeze off a copy of the region out of paranoia.

*** Then I hit upon an extra pair of markers to freeze the 
pre-command-execution extent of the region before each command, since 
x-set-selection can also take a cons of markers to lazily query.

It seems to work quite well, and doesn't buffer-substring gratuitously. 
I've yet to convince myself my actual implementation is 100% correct and 
it may be still kind of ugly, but shouldn't be grossly inefficient.

On the plus side, with the patch, C-SPC C-SPC sequences and clumsy 
clicks no longer nuke primary.

Anyway, see attached.  Perhaps not quite suitable for inclusion in its 
current form, but maybe the approach/idea is basically viable?

I have included debugging messages in the patch in its current state: It 
may be useful to split your window to show *Messages* and (setq 
select-active-region-debugging t) with it applied and try some 
selections. Or just confusing.

Other dumb issue: turns out I don't know how to make C code use 
defcustom variables - really, the calls introduced in the command loop 
need to be avoided if at all possible, given where they are, and so 
should also be guarded by !NILP select-active-regions, but apparently 
declaring the variable on the C side is the wrong thing to do.








[-- Attachment #2: select-active-regions_nozerosized_r1.diff --]
[-- Type: text/x-patch, Size: 9655 bytes --]

=== modified file 'lisp/simple.el'
--- lisp/simple.el	2010-07-17 20:21:51 +0000
+++ lisp/simple.el	2010-07-18 16:14:28 +0000
@@ -3667,35 +3667,67 @@
     (signal 'mark-inactive nil)))
 
 (defcustom select-active-regions t
   "If non-nil, an active region automatically becomes the window selection."
   :type 'boolean
   :group 'killing
   :version "24.1")
 
 (declare-function x-selection-owner-p "xselect.c" (&optional selection))
 
+;; internal state tracking vars for select-active-regions
+(defvar select-active-region-deferred nil)
+(defvar select-active-region-frozen nil)
+(defvar select-active-region-frozen-start (make-marker))
+(defvar select-active-region-frozen-end (make-marker))
+
+(defvar select-active-region-debugging nil)
+
+(defun select-active-region-debug (at)
+  (when select-active-region-debugging
+    (message "sar %s: m: %s d: %s f: %s R: %s..%s F: %s..%s"
+             at
+             mark-active
+             select-active-region-deferred
+             select-active-region-frozen
+             (if (and (mark t) mark-active) (region-beginning) "nil")
+             (if (and (mark t) mark-active) (region-end) "nil")
+             (marker-position select-active-region-frozen-start)
+             (marker-position select-active-region-frozen-end))))
+
 ;; Many places set mark-active directly, and several of them failed to also
 ;; run deactivate-mark-hook.  This shorthand should simplify.
 (defsubst deactivate-mark (&optional force)
   "Deactivate the mark by setting `mark-active' to nil.
 Unless FORCE is non-nil, this function does nothing if Transient
 Mark mode is disabled.
 This function also runs `deactivate-mark-hook'."
+  (select-active-region-debug "dea-m 1")
   (when (or transient-mark-mode force)
     ;; Copy the latest region into the primary selection, if desired.
-    (and select-active-regions
-	 mark-active
-	 (display-selections-p)
-	 (x-selection-owner-p 'PRIMARY)
-	 (x-set-selection 'PRIMARY (buffer-substring-no-properties
-				    (region-beginning) (region-end))))
+    (when (and select-active-regions
+	       mark-active
+	       (display-selections-p)
+	       (x-selection-owner-p 'PRIMARY))
+      (if select-active-region-frozen
+          (and (marker-position select-active-region-frozen-start)
+               (marker-position select-active-region-frozen-end)
+               (eq (marker-buffer select-active-region-frozen-start)
+                   (current-buffer))
+               (x-set-selection 'PRIMARY (buffer-substring-no-properties
+                                          select-active-region-frozen-start
+                                          select-active-region-frozen-end)))
+      (x-set-selection 'PRIMARY (buffer-substring-no-properties
+				 (region-beginning) (region-end)))))
+    (select-active-region-debug "dea-m 2")
+    (setq select-active-region-frozen nil) ; well, it is still potentially "frozen", but string-frozen not marker-frozen.
+    (setq select-active-region-deferred nil)
     (if (and (null force)
 	     (or (eq transient-mark-mode 'lambda)
 		 (and (eq (car-safe transient-mark-mode) 'only)
 		      (null (cdr transient-mark-mode)))))
 	;; When deactivating a temporary region, don't change
 	;; `mark-active' or run `deactivate-mark-hook'.
 	(setq transient-mark-mode nil)
       (if (eq (car-safe transient-mark-mode) 'only)
 	  (setq transient-mark-mode (cdr transient-mark-mode)))
       (setq mark-active nil)
@@ -3704,23 +3736,58 @@
 (defun activate-mark ()
   "Activate the mark."
   (when (mark t)
     (setq mark-active t)
     (unless transient-mark-mode
       (setq transient-mark-mode 'lambda))
     (select-active-region)))
 
 (defsubst select-active-region ()
   "Set the PRIMARY X selection if `select-active-regions' is non-nil."
+  (select-active-region-debug "sar 1")
   (and select-active-regions
        (display-selections-p)
-       (x-set-selection 'PRIMARY (current-buffer))))
+       (if (eq (region-beginning) (region-end))
+           (setq select-active-region-deferred t)
+         (progn
+           (setq select-active-region-deferred nil)
+           (setq select-active-region-frozen nil)
+           (x-set-selection 'PRIMARY (current-buffer)))))
+  (select-active-region-debug "sar 2"))
+
+
+(defun select-active-region-precommand ()
+  (select-active-region-debug "pre 1")
+  (when select-active-region-deferred
+    (select-active-region))
+  (when (and select-active-regions
+             mark-active
+             (display-selections-p)
+             (x-selection-owner-p 'PRIMARY))
+    (when (not (eq (region-beginning) (region-end)))
+      (set-marker select-active-region-frozen-start (region-beginning))
+      (set-marker select-active-region-frozen-end (region-end)))
+    (when (not (eq (marker-position select-active-region-frozen-start)
+                   (marker-position select-active-region-frozen-end)))
+      (x-set-selection 'PRIMARY (cons select-active-region-frozen-start
+				      select-active-region-frozen-end))
+      (setq select-active-region-frozen t)))
+  (select-active-region-debug "pre 2"))
+
+
+(defun select-active-region-postcommand ()
+  (select-active-region-debug "post 1")
+  ;; maybe thaw after each command.
+  (when (or select-active-region-deferred select-active-region-frozen)
+    (select-active-region))
+  (select-active-region-debug "post 2"))
+
 
 (defun set-mark (pos)
   "Set this buffer's mark to POS.  Don't use this function!
 That is to say, don't use this function unless you want
 the user to see that the mark has moved, and you want the previous
 mark position to be lost.
 
 Normally, when a new mark is set, the old one should go on the stack.
 This is why most applications should use `push-mark', not `set-mark'.
 

=== modified file 'src/keyboard.c'
--- src/keyboard.c	2010-07-13 10:57:00 +0000
+++ src/keyboard.c	2010-07-18 16:14:28 +0000
@@ -385,20 +385,26 @@
 Lisp_Object Qinput_method_function;
 
 /* When we call Vinput_method_function,
    this holds the echo area message that was just erased.  */
 Lisp_Object Vinput_method_previous_message;
 
 /* Non-nil means deactivate the mark at end of this command.  */
 Lisp_Object Vdeactivate_mark;
 Lisp_Object Qdeactivate_mark;
 
+/* Commands are bracketed with these.
+ */
+Lisp_Object Qselect_active_region_precommand;
+Lisp_Object Qselect_active_region_postcommand;
+
+
 /* Menu bar specified in Lucid Emacs fashion.  */
 
 Lisp_Object Vlucid_menu_bar_dirty_flag;
 Lisp_Object Qrecompute_lucid_menubar, Qactivate_menubar_hook;
 
 Lisp_Object Qecho_area_clear_hook;
 
 /* Hooks to run before and after each command.  */
 Lisp_Object Qpre_command_hook, Vpre_command_hook;
 Lisp_Object Qpost_command_hook, Vpost_command_hook;
@@ -1692,25 +1698,30 @@
 	{
 	  Lisp_Object cmd1;
 	  if (cmd1 = Fcommand_remapping (cmd, Qnil, Qnil), !NILP (cmd1))
 	    cmd = cmd1;
 	}
 
       /* Execute the command.  */
 
       Vthis_command = cmd;
       real_this_command = cmd;
+
+      if (!NILP (current_buffer->mark_active) && !NILP (Vrun_hooks))
+        call0 (Qselect_active_region_precommand);
+
       /* Note that the value cell will never directly contain nil
 	 if the symbol is a local variable.  */
       if (!NILP (Vpre_command_hook) && !NILP (Vrun_hooks))
 	safe_run_hooks (Qpre_command_hook);
 
+
       already_adjusted = 0;
 
       if (NILP (Vthis_command))
 	{
 	  /* nil means key is undefined.  */
 	  Lisp_Object keys = Fvector (i, keybuf);
 	  keys = Fkey_description (keys, Qnil);
 	  bitch_at_user ();
 	  message_with_string ("%s is undefined", keys, 0);
 	  current_kboard->defining_kbd_macro = Qnil;
@@ -1781,20 +1792,22 @@
 	  if (!CONSP (last_command_event))
 	    current_kboard->Vlast_repeatable_command = real_this_command;
 	  cancel_echoing ();
 	  this_command_key_count = 0;
 	  this_command_key_count_reset = 0;
 	  this_single_command_key_start = 0;
 	}
 
       if (!NILP (current_buffer->mark_active) && !NILP (Vrun_hooks))
 	{
+          call0 (Qselect_active_region_postcommand);
+
 	  /* In Emacs 22, setting transient-mark-mode to `only' was a
 	     way of turning it on for just one command.  This usage is
 	     obsolete, but support it anyway.  */
 	  if (EQ (Vtransient_mark_mode, Qidentity))
 	    Vtransient_mark_mode = Qnil;
 	  else if (EQ (Vtransient_mark_mode, Qonly))
 	    Vtransient_mark_mode = Qidentity;
 
 	  if (!NILP (Vdeactivate_mark))
 	    call0 (Qdeactivate_mark);
@@ -12059,20 +12072,26 @@
 
   DEFVAR_LISP ("deactivate-mark", &Vdeactivate_mark,
 	       doc: /* If an editing command sets this to t, deactivate the mark afterward.
 The command loop sets this to nil before each command,
 and tests the value when the command returns.
 Buffer modification stores t in this variable.  */);
   Vdeactivate_mark = Qnil;
   Qdeactivate_mark = intern_c_string ("deactivate-mark");
   staticpro (&Qdeactivate_mark);
 
+  Qselect_active_region_precommand = intern_c_string ("select-active-region-precommand");
+  staticpro (&Qselect_active_region_precommand);
+
+  Qselect_active_region_postcommand = intern_c_string ("select-active-region-postcommand");
+  staticpro (&Qselect_active_region_postcommand);
+
   DEFVAR_LISP ("command-hook-internal", &Vcommand_hook_internal,
 	       doc: /* Temporary storage of `pre-command-hook' or `post-command-hook'.  */);
   Vcommand_hook_internal = Qnil;
 
   DEFVAR_LISP ("pre-command-hook", &Vpre_command_hook,
 	       doc: /* Normal hook run before each command is executed.
 If an unhandled error happens in running this hook,
 the hook value is set to nil, since otherwise the error
 might happen repeatedly and make Emacs nonfunctional.  */);
   Vpre_command_hook = Qnil;


^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: Selection changes
  2010-07-17 23:49   ` Angelo Graziosi
@ 2010-07-18 19:28     ` David De La Harpe Golden
  2010-07-18 22:39       ` Angelo Graziosi
  0 siblings, 1 reply; 39+ messages in thread
From: David De La Harpe Golden @ 2010-07-18 19:28 UTC (permalink / raw)
  To: Angelo Graziosi, Emacs developers

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

On 18/07/10 00:49, Angelo Graziosi wrote:
> On the way of changes...
>
> In the menu 'Edit', I read:
>
> [...]
> Cut C-w
> Copy <C-insertchar>
> [...]
>

Sorry, you mean out of box on "emacs -Q" ?
On what platform and emacs version?

C-insertchar seems unlikely, though maybe you mean
with cua-mode enabled (even then I don't get it, though
nor does it show C-x/C-c, though it does change paste to C-v.
Hmm.)


Cut   C-w
Copy  M-w
Paste C-y

is in fact what I see out of box, as attached.

[Of course maybe it was fixed after your report]





[-- Attachment #2: emacs_edit_menu1.png --]
[-- Type: image/png, Size: 24614 bytes --]

^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: Selection changes
  2010-07-18 19:28     ` David De La Harpe Golden
@ 2010-07-18 22:39       ` Angelo Graziosi
  0 siblings, 0 replies; 39+ messages in thread
From: Angelo Graziosi @ 2010-07-18 22:39 UTC (permalink / raw)
  To: David De La Harpe Golden; +Cc: Emacs developers

Il 18/07/2010 21.28, David De La Harpe Golden ha scritto:
> On 18/07/10 00:49, Angelo Graziosi wrote:
>> On the way of changes...
>>
>> In the menu 'Edit', I read:
>>
>> [...]
>> Cut C-w
>> Copy <C-insertchar>
>> [...]
>>
>
> Sorry, you mean out of box on "emacs -Q" ?
> On what platform and emacs version?

It occurs on Kubuntu 10.04 and Cygwin, *WITH*

(pc-selection-mode t)

in ~/.emacs file :(.

Anyway, I do not see the reasons for which it uses 'Copy <C-insertchar>' 
and not, the better, 'Copy  C-INS' :-O

Usually, on keyboard, I have find: Home, End, PagUp, PagDown and _INS_ 
keys, not 'insertchar'.

As I said, I find '<>', 'insertchar' etc. very ugly!

Omitting (pc-selection-mode t) from ~/.emacs works as you

> Cut C-w
> Copy M-w
> Paste C-y

Ciao,
Angelo.



^ permalink raw reply	[flat|nested] 39+ messages in thread

* RE: Selection changes
  2010-07-17  3:30         ` Miles Bader
  2010-07-17  3:49           ` Chong Yidong
@ 2010-07-22 21:21           ` Drew Adams
  2010-07-22 22:05             ` Chong Yidong
  1 sibling, 1 reply; 39+ messages in thread
From: Drew Adams @ 2010-07-22 21:21 UTC (permalink / raw)
  To: 'Miles Bader', 'Chong Yidong'
  Cc: 'David De La Harpe Golden', emacs-devel

> Chong Yidong <cyd@stupidchicken.com> writes:
> > But I think select-active-regions needs further 
> > improvement.  Perhaps its default behavior should be as
> > follows: for an active region created using
> > shift-selection or mouse dragging, Emacs supplies the 
> > region text to primary.  When such a region is
> > deactivated, Emacs disowns primary (as some other apps
> > do, tho not Firefox).  For an active region created
> > simply with C-SPC, no special x-selection handling should 
> > be performed.
> 
> I don't like things that make selections magic depending on how they
> were selected; it just makes the interface more confusing and
> discourages people from learning new commands.
> 
> A selection should be a selection, to the greatest extent possible
> (there are some exceptions, like shift-selections auto-deselecting,
> but that's much less confusing because it's an immediate and visually
> obvious effect, and fits people's shift-select muscle-memory).

I agree with Miles about that.

I'll go further, on a different angle.  I disagree with a change to the default
behavior of selection/kill/copy/yank (with the mouse or keyboard).  Period.  

The latest build I have of Emacs is completely broken wrt yanking with mouse-2 -
see bugs 6689, 6694, 6701,....  I have not paid attention to this thread, but I
cannot ignore a blown-away mouse.

I don't know what problem you all think you're trying to fix, but AFAICT nothing
needs fixing wrt select/kill/copy/yank, whether via keys or mouse.  It ain't
broke, so please stop trying to fix it.  I use the kill ring, primary selection,
and secondary selection all the time, and they all work just fine, thank you
very much - both within Emacs and between it and other apps.  Or they did until
recently.

There are so many real bugs that need fixing - many with solutions already
provided.  Why not start there, if you have the time and energy to fiddle?

If you want to provide an optional (opt-in), _alternative_ behavior for
select/kill/copy/yank (mouse or keyboard or both), then fine - go for it.  Bring
that up here as a _proposal_, to be discussed.  No problem.  Normal.

But no such a change should be made to the _default_ behavior.  I cannot
understand how such changes are made willy nilly, without any real discussion.
That's not the way Emacs development should proceed.

When someone does propose a change here, it can be nigh unto impossible to get
any agreement and the final OK for it.  I understand that very well, believe me.
But that does not mean that having commit access is a license to make whatever
changes you like.  And that applies to everyone, or it should.

It's not kosher to avoid full proposal & discussion and just implement whatever
you think is right.  That doesn't respect the community, and it's not good
development practice that leads to a good product.

Just one opinion, of course.





^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: Selection changes
  2010-07-22 21:21           ` Drew Adams
@ 2010-07-22 22:05             ` Chong Yidong
  2010-07-23 10:32               ` Eli Zaretskii
  0 siblings, 1 reply; 39+ messages in thread
From: Chong Yidong @ 2010-07-22 22:05 UTC (permalink / raw)
  To: Drew Adams
  Cc: 'David De La Harpe Golden', emacs-devel,
	'Miles Bader'

> The latest build I have of Emacs is completely broken wrt yanking with
> mouse-2 - see bugs 6689, 6694, 6701,....  I have not paid attention to
> this thread, but I cannot ignore a blown-away mouse.

The specific problem you encountered apparently comes from the way the
Windows port emulates a primary selection.  This will need some updating
for the current changes.  This kind of snag is to be expected; the
development sources are not stable releases.  Thanks for the bug report.



^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: Selection changes
  2010-07-22 22:05             ` Chong Yidong
@ 2010-07-23 10:32               ` Eli Zaretskii
  2010-07-24 18:44                 ` David De La Harpe Golden
  0 siblings, 1 reply; 39+ messages in thread
From: Eli Zaretskii @ 2010-07-23 10:32 UTC (permalink / raw)
  To: Chong Yidong; +Cc: miles, emacs-devel, drew.adams, david

> From: Chong Yidong <cyd@stupidchicken.com>
> Date: Thu, 22 Jul 2010 18:05:43 -0400
> Cc: 'David De La Harpe Golden' <david@harpegolden.net>, emacs-devel@gnu.org,
> 	'Miles Bader' <miles@gnu.org>
> 
> > The latest build I have of Emacs is completely broken wrt yanking with
> > mouse-2 - see bugs 6689, 6694, 6701,....  I have not paid attention to
> > this thread, but I cannot ignore a blown-away mouse.
> 
> The specific problem you encountered apparently comes from the way the
> Windows port emulates a primary selection.  This will need some updating
> for the current changes.

Could you please describe the changes that were made in this respect?

The NEWS entry says:

    ** Selection changes.

    The way Emacs interacts with the clipboard and primary selection, by
    default, is now similar to other X applications.  In particular, kill
    and yank use the clipboard, in addition to the primary selection.

    *** `select-active-regions' now defaults to t.

    *** `x-select-enable-clipboard' now defaults to t.

    *** `x-select-enable-primary' now defaults to nil.

    *** `mouse-drag-copy-region' now defaults to nil.

    *** `mouse-2' is now bound to `mouse-yank-primary'.

Is the list of default values in this entry all that was modified?
That is, if the user reverts all of these values to their previous
defaults, would she have the previous behavior?  Or were other changes
made as well?  If the latter, could someone please tell where these
changes were made, and in what revno's?

In general, the behavior on MS-Windows does not need to change,
because there's no primary selection on Windows.  Emacs on Windows
emulates the primary selection, but that emulation was never meant to
be a replacement for the "real thing", it was just there to minimize
OS-dependent conditions elsewhere in Emacs sources.



^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: Selection changes
  2010-07-23 10:32               ` Eli Zaretskii
@ 2010-07-24 18:44                 ` David De La Harpe Golden
  2010-07-24 20:28                   ` Eli Zaretskii
  2010-07-25 16:32                   ` David De La Harpe Golden
  0 siblings, 2 replies; 39+ messages in thread
From: David De La Harpe Golden @ 2010-07-24 18:44 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: Chong Yidong, miles, drew.adams, emacs-devel

On 23/07/10 11:32, Eli Zaretskii wrote:

> Is the list of default values in this entry all that was modified?

It's those settings that cause the behaviour changes.   Menu-bar 
bindings were changed too, though not in a manner that would affect w32 
AFAICS.

There were/are various bugfixes arising from problems highlighted by the 
changes, of course.

> That is, if the user reverts all of these values to their previous
> defaults, would she have the previous behavior?

Though remembering the fact the previous defaults were different on 
different platforms - so on w32:
select-active-regions nil
x-select-enable-clipboard t
; x-select-enable-primary nil
mouse-drag-copy-region t
(global-set-key [mouse-2] 'mouse-yank-at-click)

Binding the menu bar items back to their old defaults would be required 
for a technically complete reversion, that would matter mostly on x11 
(the old menu bar used to force use of the clipboard, since the old 
defaults on x11 had x-select-enable-primary t / 
x-select-enable-clipboard nil).

AFAIK the use of rebinding (mouse-2, menu-bar) rather than rewriting the 
existing functions to which they were bound to honour some additional 
customization booleans (as in some earlier iterations of this...) does 
make it impossible to use pure customization theme functionality to 
encapsulate the changes.

 > In general, the behavior on MS-Windows does not need to change,
> because there's no primary selection on Windows.

There is no real primary selection, but that doesn't actually mean the 
default behaviour didn't merit changing on w32 too.  Windows apps do 
_not_ typically overwrite the clipboard upon mere selection of text (nor 
do x11 apps for that matter). "windows has no primary selection" does 
_not_ mean "the windows clipboard can be considered some sort of a 
substitute primary selection that is okay to overwrite willy-nilly".

Yes, some may view the w32 clipboard-eating as a "feature" (and even 
want it expanded to catch all the cases consistently, which would at 
least be consistent - i.e. the proposed "clipboard-active-regions") 
and/or consider making w32 emacs work more like other apps (whether 
other w32 apps, x11 emacs or other x11 apps) a non-goal.  In any case, 
the feature is still available, whether it's on by default or not is a 
different matter.






^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: Selection changes
  2010-07-24 18:44                 ` David De La Harpe Golden
@ 2010-07-24 20:28                   ` Eli Zaretskii
  2010-07-24 21:48                     ` David De La Harpe Golden
  2010-07-25 16:32                   ` David De La Harpe Golden
  1 sibling, 1 reply; 39+ messages in thread
From: Eli Zaretskii @ 2010-07-24 20:28 UTC (permalink / raw)
  To: David De La Harpe Golden; +Cc: cyd, miles, drew.adams, emacs-devel

> Date: Sat, 24 Jul 2010 19:44:13 +0100
> From: David De La Harpe Golden <david@harpegolden.net>
> CC: Chong Yidong <cyd@stupidchicken.com>, drew.adams@oracle.com, 
>  emacs-devel@gnu.org, miles@gnu.org
> 
> > Is the list of default values in this entry all that was modified?
> 
> It's those settings that cause the behaviour changes.   Menu-bar 
> bindings were changed too, though not in a manner that would affect w32 
> AFAICS.
> 
> There were/are various bugfixes arising from problems highlighted by the 
> changes, of course.

Thanks.

> Windows apps do _not_ typically overwrite the clipboard upon mere
> selection of text

Did Emacs on Windows really do that before these changes?  I thought
it didn't.



^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: Selection changes
  2010-07-24 20:28                   ` Eli Zaretskii
@ 2010-07-24 21:48                     ` David De La Harpe Golden
  0 siblings, 0 replies; 39+ messages in thread
From: David De La Harpe Golden @ 2010-07-24 21:48 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: cyd, emacs-devel, drew.adams, miles

On 24/07/10 21:28, Eli Zaretskii wrote:

>
>> Windows apps do _not_ typically overwrite the clipboard upon mere
>> selection of text
>
> Did Emacs on Windows really do that before these changes?  I thought
> it didn't.

Yes - though dependent on whether you used mouse or keyboard to select...

With mixed-mouse-keyboard established regions possible (shift-extending 
an initially mouse-selected region has worked for some time, 
mouse-extending an initally keyboard-selected region could be made 
work*), there isn't a clean division either.

So, hence the (still hypothetical) "clipboard-active-regions": it would 
be for people who want the active region consistently put to the 
clipboard whether the selection was established by mouse or keyboard or 
both. People who want mouse to go to the clipboard but not keyboard 
could turn on mouse-drag-copy-region and leave clipboard-active-regions 
turned off.

* You may _think_ it works already (emacs' mouse-3), but currently that 
also side-effects, you can't _just_ mouse-extend the region like other 
apps' shift-mouse-1. (as per some discussion under #6701, though it 
properly belongs in a separate ticket).




^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: Selection changes
  2010-07-24 18:44                 ` David De La Harpe Golden
  2010-07-24 20:28                   ` Eli Zaretskii
@ 2010-07-25 16:32                   ` David De La Harpe Golden
  1 sibling, 0 replies; 39+ messages in thread
From: David De La Harpe Golden @ 2010-07-25 16:32 UTC (permalink / raw)
  To: emacs-devel, Chong Yidong, Eli Zaretskii

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

On 24/07/10 19:44, David De La Harpe Golden wrote:

> AFAIK the use of rebinding (mouse-2, menu-bar) rather than rewriting the
> existing functions to which they were bound to honour some additional
> customization booleans (as in some earlier iterations of this...) does
> make it impossible to use pure customization theme functionality to
> encapsulate the changes.
>

Perhaps reverting the rebinding of mouse-2, but then expanding 
mouse-yank-at-click to honour a boolean customization
mouse-yank-selection-only would be best?

This would certainly simplify instructing users on how to switch between 
the old and new behaviours (and I guess we can expect more tickets in 
the tracker in that area): it becomes possible to switch the behaviours 
solely by changing a small set of all-boolean customizations.

Thhis also means other bindings to mouse-yank-at-click (such as in the 
fringes, or done by 3rd party apps or end users) get the behaviour.

(*apart from the menu, though maybe users most likely to want the 
"classic" behaviour are least likely to be heavy menu users)

[-- Attachment #2: mouseyank_selonly.diff --]
[-- Type: text/x-patch, Size: 2763 bytes --]

=== modified file 'lisp/mouse.el'
--- lisp/mouse.el	2010-07-17 20:21:51 +0000
+++ lisp/mouse.el	2010-07-25 16:27:46 +0000
@@ -47,6 +47,16 @@
   :version "24.1"
   :group 'mouse)
 
+(defcustom mouse-yank-selection-only t
+  "If non-nil, mouse yank inserts the current selection only.
+
+If nil, then the text that is inserted is the same as that which
+a keyboard `yank' would insert, which itself varies according to
+`x-select-enable-primary' and `x-select-enable-clipboard'"
+  :type 'boolean
+  :version "24.1"
+  :group 'mouse)
+
 (defcustom mouse-1-click-follows-link 450
   "Non-nil means that clicking Mouse-1 on a link follows the link.
 
@@ -1247,25 +1257,30 @@
 		     (max (point) click-posn)))))
 
 (defun mouse-yank-at-click (click arg)
-  "Insert the last stretch of killed text at the position clicked on.
+  "Insert the last stretch of killed  text at the position clicked on.
 Also move point to one end of the text thus inserted (normally the end),
 and set mark at the beginning.
 Prefix arguments are interpreted as with \\[yank].
+If `mouse-yank-selection-only' is non-nil, delegate click to
+`mouse-yank-primary' (arg ignored in that case).
 If `mouse-yank-at-point' is non-nil, insert at point
 regardless of where you click.
 If `select-active-regions' is non-nil, the mark is deactivated
 before inserting the text."
   (interactive "e\nP")
   ;; Give temporary modes such as isearch a chance to turn off.
-  (run-hooks 'mouse-leave-buffer-hook)
-  (when select-active-regions
-    ;; Without this, confusing things happen upon e.g. inserting into
-    ;; the middle of an active region.
-    (deactivate-mark))
-  (or mouse-yank-at-point (mouse-set-point click))
-  (setq this-command 'yank)
-  (setq mouse-selection-click-count 0)
-  (yank arg))
+  (if mouse-yank-selection-only
+      (mouse-yank-primary click)
+    (progn
+      (run-hooks 'mouse-leave-buffer-hook)
+      (when select-active-regions
+        ;; Without this, confusing things happen upon e.g. inserting into
+        ;; the middle of an active region.
+        (deactivate-mark))
+      (or mouse-yank-at-point (mouse-set-point click))
+      (setq this-command 'yank)
+      (setq mouse-selection-click-count 0)
+      (yank arg))))
 
 (defun mouse-yank-primary (click)
   "Insert the primary selection at the position clicked on.
@@ -2441,7 +2456,7 @@
 (global-set-key [left-fringe mouse-1]	'mouse-set-point)
 (global-set-key [right-fringe mouse-1]	'mouse-set-point)
 
-(global-set-key [mouse-2]	'mouse-yank-primary)
+(global-set-key [mouse-2]	'mouse-yank-at-click)
 ;; Allow yanking also when the corresponding cursor is "in the fringe".
 (global-set-key [right-fringe mouse-2] 'mouse-yank-at-click)
 (global-set-key [left-fringe mouse-2] 'mouse-yank-at-click)


^ permalink raw reply	[flat|nested] 39+ messages in thread

* Selection changes
@ 2011-05-27 16:25 Chong Yidong
  2011-05-28  4:13 ` David De La Harpe Golden
  2011-05-28 11:16 ` Andreas Röhler
  0 siblings, 2 replies; 39+ messages in thread
From: Chong Yidong @ 2011-05-27 16:25 UTC (permalink / raw)
  To: emacs-devel

I've updated the X selection code to provide support for clipboard
managers (plus some standards compliance bits like the MULTIPLE target).

It seems to work well with Gnome's minimalist clipboard manager; the
clipboard is no longer lost when deleting a frame or exiting Emacs.
Help with testing on other environments would be much appreciated, and
let me know if you experience any funky behavior.

Saving is done by the function x-clipboard-manager-save, run from
delete-frame-functions and kill-emacs-hook (though I'm considering
making this internal instead of using hooks).  The other ports should be
unaffected by these changes.



^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: Selection changes
  2011-05-27 16:25 Chong Yidong
@ 2011-05-28  4:13 ` David De La Harpe Golden
  2011-05-31  0:59   ` Taylor Venable
  2011-05-28 11:16 ` Andreas Röhler
  1 sibling, 1 reply; 39+ messages in thread
From: David De La Harpe Golden @ 2011-05-28  4:13 UTC (permalink / raw)
  To: Chong Yidong; +Cc: Taylor Venable, emacs-devel

On 27/05/11 17:25, Chong Yidong wrote:
> I've updated the X selection code to provide support for clipboard
> managers (plus some standards compliance bits like the MULTIPLE target).

Cool.

> Help with testing on other environments would be much appreciated,
> and let me know if you experience any funky behavior.

No problems visible in the xfce4 case:

Note that an xfce4-settings package 4.8.2 with the revised gnome-like 
minimalist clipboard manager as discussed in earlier thread was released 
some days ago, and appears to have hit both Debian/unstable and Arch by 
now.  Taylor, you may want to upgrade to it if you haven't already, it 
should fix the emacs slowdown you were experiencing under xfce.




^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: Selection changes
  2011-05-27 16:25 Chong Yidong
  2011-05-28  4:13 ` David De La Harpe Golden
@ 2011-05-28 11:16 ` Andreas Röhler
  1 sibling, 0 replies; 39+ messages in thread
From: Andreas Röhler @ 2011-05-28 11:16 UTC (permalink / raw)
  To: emacs-devel; +Cc: Chong Yidong

Am 27.05.2011 18:25, schrieb Chong Yidong:
> I've updated the X selection code to provide support for clipboard
> managers (plus some standards compliance bits like the MULTIPLE target).
>
> It seems to work well with Gnome's minimalist clipboard manager; the
> clipboard is no longer lost when deleting a frame or exiting Emacs.
> Help with testing on other environments would be much appreciated, and
> let me know if you experience any funky behavior.
>
> Saving is done by the function x-clipboard-manager-save, run from
> delete-frame-functions and kill-emacs-hook (though I'm considering
> making this internal instead of using hooks).  The other ports should be
> unaffected by these changes.
>
>

Hi,

at a first glance yank and yank-pop work fine also from clipboard on 
Suse11.4, KDE4

GNU Emacs 24.0.50.1 (i686-suse-linux-gnu, X toolkit, Xaw3d scroll bars) 
of 2011-05-28

Please tell if you want specific tests to be done.

Best regards,

Andreas

--
https://code.launchpad.net/~a-roehler/python-mode/components-python-mode
https://code.launchpad.net/s-x-emacs-werkstatt/



^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: Selection changes
  2011-05-28  4:13 ` David De La Harpe Golden
@ 2011-05-31  0:59   ` Taylor Venable
  0 siblings, 0 replies; 39+ messages in thread
From: Taylor Venable @ 2011-05-31  0:59 UTC (permalink / raw)
  To: David De La Harpe Golden; +Cc: Chong Yidong, emacs-devel

On Sat, May 28, 2011 at 00:13, David De La Harpe Golden
<david@harpegolden.net> wrote:
> On 27/05/11 17:25, Chong Yidong wrote:
>>
>> I've updated the X selection code to provide support for clipboard
>> managers (plus some standards compliance bits like the MULTIPLE target).
>
> Cool.
>
>> Help with testing on other environments would be much appreciated,
>> and let me know if you experience any funky behavior.
>
> No problems visible in the xfce4 case:
>
> Note that an xfce4-settings package 4.8.2 with the revised gnome-like
> minimalist clipboard manager as discussed in earlier thread was released
> some days ago, and appears to have hit both Debian/unstable and Arch by now.
>  Taylor, you may want to upgrade to it if you haven't already, it should fix
> the emacs slowdown you were experiencing under xfce.

Hi, just got back from a two-week holiday and tried out the 4.8.2 XFCE
settings manager with a new build of Emacs trunk (bzr revno 104439).
It works great, blazing fast compared to how it used to be. And using
the little clipboard panel widget I can see that the stuff I kill from
Emacs is making it into XFCE's clipboard manager, and is still present
after Emacs is closed. Great thanks, everyone!

-- 
Taylor C. Venable
http://metasyntax.net/



^ permalink raw reply	[flat|nested] 39+ messages in thread

end of thread, other threads:[~2011-05-31  0:59 UTC | newest]

Thread overview: 39+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-07-14 18:08 Selection changes Chong Yidong
2010-07-14 18:39 ` Jeff Clough
2010-07-14 18:53   ` Chong Yidong
2010-07-14 19:02     ` Jeff Clough
2010-07-14 19:25 ` Yann Hodique
2010-07-14 20:28   ` Chong Yidong
2010-07-14 23:51 ` David De La Harpe Golden
2010-07-16  1:31 ` Richard Stallman
2010-07-16  2:49   ` Miles Bader
2010-07-17  0:44 ` David De La Harpe Golden
2010-07-17  1:02   ` Miles Bader
2010-07-17  2:28     ` David De La Harpe Golden
2010-07-17  2:56       ` Chong Yidong
2010-07-17  3:30         ` Miles Bader
2010-07-17  3:49           ` Chong Yidong
2010-07-22 21:21           ` Drew Adams
2010-07-22 22:05             ` Chong Yidong
2010-07-23 10:32               ` Eli Zaretskii
2010-07-24 18:44                 ` David De La Harpe Golden
2010-07-24 20:28                   ` Eli Zaretskii
2010-07-24 21:48                     ` David De La Harpe Golden
2010-07-25 16:32                   ` David De La Harpe Golden
2010-07-17  3:50         ` David De La Harpe Golden
2010-07-17  3:55           ` Chong Yidong
2010-07-17  4:13             ` Chong Yidong
2010-07-17 16:55               ` David De La Harpe Golden
2010-07-18 16:24               ` David De La Harpe Golden
2010-07-17 10:50         ` Wojciech Meyer
2010-07-17 11:01           ` Miles Bader
  -- strict thread matches above, loose matches on Subject: below --
2010-07-16  1:00 Angelo Graziosi
2010-07-16  9:33 ` David De La Harpe Golden
2010-07-17 23:49   ` Angelo Graziosi
2010-07-18 19:28     ` David De La Harpe Golden
2010-07-18 22:39       ` Angelo Graziosi
2010-07-16 12:14 ` Angelo Graziosi
2011-05-27 16:25 Chong Yidong
2011-05-28  4:13 ` David De La Harpe Golden
2011-05-31  0:59   ` Taylor Venable
2011-05-28 11:16 ` Andreas Röhler

Code repositories for project(s) associated with this public inbox

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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).