Subject: bug#14241: 24.3; widgets and posn-at-point

From: Eli Zaretskii <[email-masked]>
Date: Tue, 23 Apr 2013 23:21:30 +0300

[Please keep the bug address on the CC line.]

> Date: Tue, 23 Apr 2013 16:53:28 +0200
> From: Nicolas Richard <[email-masked]>
> 
> Hello,
> 
> Thanks for your kind answer, please find some more comments below.
> 
> Le 22/04/2013 19:39, Eli Zaretskii a écrit :
> >  M-: (widget-create 'checkbox) RET
> >  C-x =
> >  M-: (forward-char -1) RET
> >  C-x =
> > 
> > See how point doesn't move?
> 
> For some reason it does move in my current working emacs session ; but
> it works as you say in a fresh one. I'm not sure it's worth trying to
> understand why there is a difference.
> 
> > Any real-life code that bumps into this needs to work around this
> > peculiarity.  E.g., don't try forward-char to a position that is
> > covered by an overlay.
> 
> Here is the example I started from :
> (let ((recentf-list (list "foo" "bar"))) ; in a real situation this
> 					; gets filled with recently
> 					; visited filenames.
>   (require 'recentf)
>   (recentf-edit-list))
> 
> [at this point the cursor should be on the first checkbox] and then hit
> C-n : the cursor doesn't stay in the same column (where the checkbox
> is), but moves to the right of it.
> 
> In this particular case, TAB does a better job so it might not be worth
> fixing it, but shouldn't C-n always try and preserve the current column
> whenever possible ?

C-n does try to preserve the current column.  But this is a tough
case, when line-move-visual is in effect (which it is by default),
because you move cursor across text most of which is invisible
(covered by overlays).