emacs-devel
[Top][All Lists]
Advanced

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

Re: Selection changes


From: David De La Harpe Golden
Subject: Re: Selection changes
Date: Sat, 17 Jul 2010 17:55:11 +0100
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.10) Gecko/20100620 Icedove/3.0.5

On 17/07/10 05:13, Chong Yidong wrote:
Chong Yidong<address@hidden>  writes:

David De La Harpe Golden<address@hidden>  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).



reply via email to

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