commit -- fix for bug #97

Matt Kimball (robozapp@xmission.com)
Sun, 16 May 1999 13:55:50 -0600


I fixed bug #97. Now you can delete an entire block, and the
justification on the following block will remain unchanged. Also, by
changes fix a related problem which has been bothering me. If you are
at the beginning of a block, and there is an empty block before the
block you are on, and you press backspace to move the block up the
page, the justification would be lost. Now it remains.

So, the code that I added will recognize the case where you have
'[Block]...[Block]' and you are deleting the '...[Block]' part.
Instead the deletion code will now delete the '[Block]...' part,
leaving the justification info in the trailing block marker, so any
text following it will behave sanely. This means that I had to update
code in the PieceTable and in the layout to handle the deleting of the
first block marker in a section gracefully iff the block is empty.
Also I added a new PieceTable ChangeRecord type: PXT_ChangePoint for
positioning the point sanely during the Undo/Redo of these operations.

In all:

M text/fmt/xp/fl_BlockLayout.cpp
M text/fmt/xp/fl_BlockLayout.h
M text/fmt/xp/fl_DocListener.cpp
M text/fmt/xp/fl_SectionLayout.cpp
M text/ptbl/xp/pt_PT_DeleteSpan.cpp
M text/ptbl/xp/pt_PT_Undo.cpp
M text/ptbl/xp/pt_PieceTable.cpp
M text/ptbl/xp/pt_PieceTable.h
M text/ptbl/xp/px_ChangeRecord.cpp
M text/ptbl/xp/px_ChangeRecord.h

I tested for a while to make sure I didn't break anything, so I think
things are ok.

-- 
Matt Kimball
mkimball@xmission.com


This archive was generated by hypermail 1.03b2.