commit - backend changes


Subject: commit - backend changes
From: Jesper Skov (jskov@redhat.com)
Date: Fri Feb 23 2001 - 17:32:58 CST


OK, the patch is finally mature enough to get checked in. Still issues
to resolve, but those are too small to warrant the hassle of keeping
this up to date outside of the tree.

This is the testing I'd like to get some help with:

 o Test: printing.
 o Test: header/footer editing
 o Test: lists
 o Test: fl_BlockLayout::_breakLineAfterRun call from field start/end
         insertion [how is this triggered?]

The below are features / minor issues I'll file Bugs for:

 o Feat: Add show paragraph draw for ForcedLineBreak.
 o Looks: Right-aligned lines push the pilcrow into the margin.
 o Looks: Pilcrow does not inherit super/subscripting. Want to clean up
          some code rather than add more cruft.
 o Looks: Pilcrow on empty line looks different than on others - because
          it cannot inherit properties. Fix with proper access to
          default font properties.

 o Feat:
   Add EOP property in PT to allow for selection of EOP.
   Present code draws the char OK, but the PT has no knowledge of it
   and thus cannot select it.

   Need to review and adopt proper selection magic as per Paul's
   suggestion:

      By getting the widths and locations right, people can quickly
      infer what they just selected by noticing the answers to 2
      questions -- Where is it? How wide is it?

         between two words ==> either a space or a tab, so check the width
         at the end of a paragraph ==> obvious
         at the end of a line ==> obvious
         bottom of column, full width ==> obvious
         bottom of page, full width ==> obvious

 o Add code to pt_PT_?Strux.cpp which handles the EOP.
 o Make Run representing EOD. EOD is like EOP, except it cannot be
   selected.
 o Make FmtRuns have non-zero length (show paragraph printing too)
 o fp_Line::mapXYToPosition has some code to deal with zero-length
   FmtRuns. Must rewrite / get rid of as appropriate.

And finally, the story of the work for those interested:

>>>> 2001.02.24 - 00:30 CET
 o Feat: Add BIDI_ENABLED handling of new mapXYToPosition/findPointCoords
   functions.
 o Assert: findPointCoords to the right of the pilcrow. Why? [found
   cause, not fix]
>>>> 2001.02.21 - 22:40 CET
 o Test: Load all abi/docs and abi/test docs and run cursor to the EOD
         (line down).
 o Clean: Get rid of fl_BlockLayout::_validateBlockForPoint
 o Bug: Figure out why the heap is trashed by the delete in
        _purgeEndOfParagraphRun [can't reproduce now]
 o Bug: Loading test/wp/footer.abw causes assertions in page numbering
        fields. [bad assert, I think]
 o Test: Martin's killer doc. [harmless asserts, not related to changes]
 o Bug: 1140 causes assert failure [not related to bug itself]
 o Bug: Carret Y position is wrong with big fonts. [Because it gets
        ascent from default style?]
>>>> 2001.02.18 - 11:20 CET
 o Test: undo / redo works properly.
 o Test: copy and paste to and from AbiWord.
 o Bug: after load first pilcrow is missing.
 o Test: save / load / reload.
 o Test: Load *all* docs/ test/ documents.
 o Bug: When a line with EOP is broken, the EOP is not properly cleared.
 o Hack fl_Section to add EOP when it creates a block. Fixes loading.
 o Bug: When pressing return, the pilcrow on the new line gets deleted
   after a short delay. Doesn't happen after the paragraph contains
   text.
>>>> 2001.02.16 - 20:50 CET
 o Bug: cursor location calculation is completely broken
 o Bug: type in a line of text, then shift+return. Cursor is a wrong loc.
 o Bug: subtract EOP from lengths: clean document, type in 'a'. Select
   all then type something. Assertion in PT because EOD is attempted
   deleted.
 o Make EOP pilcrow draw in proper typeface.
 o findPointCoords functions just copy'n'paste.
 o Callers of _findPrevPropertyRun must handle NULL return. Most are
   findPointCoords functions needing a rewrite anyway.
 o Bug: Observed lines after forced line break get cleared when
        typing return. Unable to reproduce though.
 o Bug: empty doc, "f"+return+shift-return -> assert in breakSection
 o Bug: type return in empty document -> line appears on page 2
 o Bug: EOP Runs have no sizing information.
>>>> 2001.02.16 - 12:55 CET
 o Review use of _insertEndOfParagraphRun calls / logic surrounding
   them.
 o Add assertions / self-check functions to ensure we'll never have
   zero-length Runs (except for FmtMark Runs).
 o Look at any FIXMEs in the code.
 o Make _breakLineAfterRun() rely on invariant.
 o Got rid of checkForEndOnForcedBreak() and checkForBeginOnForcedBreak().
   Guaranteed invariants in new code.
>>>> 2001.02.15 - 22:45 CET
 o Proper handling of EOP Run when blocks are joined.
 o Got rid of IsZeroLengthTextRun().
>>>> 2001.02.15 - 12:40 CET
 o Add PILCROW (backwards P) unicode.
 o Draw end-of-paragraph in show paragraph mode.
 o Rename _insertFakeTextRun to _insertEndOfParagraphRun.
   Rewrite function to use EOP Run instead of zl TextRuns.
 o Proper addition of EOP Run when blocks are split.

Jesper

Backend changes to get rid of (most) zero-length Runs. Also adds new
EndOfParagraph Run that draws the pilcrow character in show paragraphs
mode.
CVS: ----------------------------------------------------------------------
CVS: Enter Log. Lines beginning with `CVS:' are removed automatically
CVS:
CVS: Committing in .
CVS:
CVS: Modified Files:
CVS: fb_LineBreaker.cpp fl_BlockLayout.cpp fl_BlockLayout.h
CVS: fp_Line.cpp fp_Run.cpp fp_Run.h fp_TestRoutines.cpp
CVS: fp_TextRun.cpp fp_TextRun.h fv_View.cpp
CVS: ----------------------------------------------------------------------



This archive was generated by hypermail 2b25 : Fri Feb 23 2001 - 17:33:12 CST