Backend changes status


Subject: Backend changes status
From: Jesper Skov (jskov@redhat.com)
Date: Wed Feb 21 2001 - 16:18:21 CST


I've nailed a few annoying problems with the code during bugday. I'll
be checking the code in after I've had time to go over it and remove
any lingering debug code. This will happen Friday or during the
weekend.

[no patch included this time]

Jesper

---------------------------------- TODO ----------------------------------

 o Assert: findPointCoords to the right of the pilcrow. Why?
 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 BIDI_ENABLED handling of new mapXYToPosition/findPointCoords
   functions.
 o Clean: Add Doxygen function comments.
 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?]

Future:
 [I spent some time on this today, but it needs a lot of hacking - and
  most of the code is new to me, so this will be a post 1.0 job for
  sure. Investigate Paul's suggestion of just increasing the block's
  size from 0 to 1.]

 o 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.

---------------------------------- DONE ----------------------------------

>>>> 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.



This archive was generated by hypermail 2b25 : Wed Feb 21 2001 - 16:20:43 CST