>     :notify will now change the text following the State button from "SAVED
>     and set." to "EDITED, shown value does not take effect until you set or
>     save it."  The first of these strings is 14 characters long, the second
>     66.  The difference of their length is 52.
>
> I see.
>
> This edit ought to relocate the buffer positions that will be used
> later.  If they were stored in markers, that would happen automatically.
> Where are these positions being stored?

In :field-overlay.  They are retrieved by `widget-field-find' via
`widget-field-start' and `widget-field-end'.  For the foreground and
background color fields I typically get within `widget-before-change'

#<overlay from 1031 to 1044 in *Customize Face: isearch*>
#<overlay from 1083 to 1093 in *Customize Face: isearch*>

before the notification and

#<overlay from 1083 to 1096 in *Customize Face: isearch*>
#<overlay from 1135 to 1145 in *Customize Face: isearch*>

after.  The difference is 52 as expected, hence these positions should
get relocated correctly.

The problem is that the FROM value of `widget-after-change' now points
into the foreground overlay and the TO value into the background
overlay.  I typically get FROM = 1090 and TO = 1143.  As a consequence,
`widget-after-change' concludes that I have edited two different fields
and throws an error.  I suppose this happens because signal_after_change
is called with arguments `opoint' and `PT - opoint' where opoint = 1090
and PT = 1090 + 52 + 1.



_______________________________________________
emacs-pretest-bug mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/emacs-pretest-bug

Reply via email to