> Should this also be fixed in warpInsPtNextPrevPage, just above?
Yes. I've included that now in this patch i'm attaching. Missed that, guess lack of
sleep.;)
> I don't understand the code you've patched yet so I don't know why your
> patch works. In particular, I don't really know what a FmtMark is.
Here's what i've garnered after some creative use of gdb and reading the code:
1. If a line is blank, ie. contains no characters, a FmtMark is inserted with the
attributes that the user specified. eg. Font name, size, bold, etc etc. In other
words, it acts as a placeholder for the attributes.
2. When a line is cleared, ie. by DeleteSpan etc, and it is the end of the paragraph
(ie. no more characters in the line), FmtMark will be inserted with the attributes of
the *last* character deleted to acts as said placeholder.
3. Bug 863 occurs when you move the cursor, then warpInsPtNextPrevPage/Line will
remove *any* FmtMark at the present cursor location. Including the one DeleteSpan just
inserted so that we can remember our attribute settings.
4. I haven't figured out *why* exactly warpInsPtNextPrevPage/Line needs to clear the
FmtMark at the current position other than to clear any FmtMark inserted if the user
changes an attribute in the middle of 2 characters:that wouldn't make sense.
5. Hence i've left that behaviour untouched, and hope that by *not* removing the
FmtMark at the beginning of a line, that i will not have introduced any other side
effects, other than bug #863.
Could someone who is familiar with what i've described give me some feedback? Thanks.
=)
FontRevert.diff