35 | | ^(Describe your design here.)^ |
| 35 | * Bugs |
| 36 | * Open of a book containing a frame with styled text in TrueReader crashes. |
| 37 | * Problem: HotAttr class is not loaded by the class loader, because all creations of HotAttr objects are in CommonAttr. |
| 38 | * Solution: Move the attribute map to CommonAttr. |
| 39 | * Typing of text after opening of a book from the server does not work correctly. On each update of the server the caret position is set to the beginning of the text. The previous bug with the TrueReader is also present on the Server. |
| 40 | * Problem: The history and the last changed interval (on which the mark and caret positions depend) of ImmHotText are not persisted. When the text goes to the server the information needed for the mark and caret is lost. |
| 41 | * Solution: |
| 42 | * The whole history is not needed. |
| 43 | * Add persistence for ImmHotText's last changed interval. |
| 44 | * A new HotIntervalPersister should be created. |
| 45 | * Modify ImmHotTextPersister to save/load the last changed interval. |
| 46 | * If style values are applied to the current text the font hud does not always show the correct font properties of the caret position. |
| 47 | * Problem: The style values inside ImmHotText keep HotPosKind.AFTER and HotPosKind.BEFORE positions, whereas the input in ImmHotText.getStyleValue method is a HotPosKind.MIDDLE position. This leads to incorrect calculations inside getStyleValue. |
| 48 | * Solution: |
| 49 | * Use HotInterval as input to getStyleValue so that ImmHotText itself gives a complete information for a whole range of positions. |
| 50 | * Convert the positions of the input HotInterval to AFTER/BEFORE kinds, as in applyStyle. |
| 51 | * Navigation with End on the last line of text does not go to the last position of the text. |
| 52 | * Problem: HotAreaLayout.getLineEnds does not work correctly for the last line. |
| 53 | * Solution: Add a check in HotAreaLayout.getLineEnds to get the right position for line end when this is the last line in the area. |
| 54 | * Multiple UP/DOWN navigations go too much to the left. |
| 55 | * Problem: TextViewFlow.wantedX() is not considered. |
| 56 | * Solution: |
| 57 | * Set the wantedX property after all operations in TextFlowLogic except UP/DOWN. |
| 58 | * On UP/DOWN navigation read the wantedX property to get the X coordinate instead of calling the layout. |
| 59 | * [http://www.sophie2.org/trac/ticket/2096 http://www.sophie2.org/trac/ticket/2096] - Keyboard shortcuts for text styling don't work. |
| 60 | * Problem: Not implemented due to focus problem, which are now solved. |
| 61 | * Solution: Add interactions for Ctrl+B, Ctrl+I and Ctrl+U in TextView class. |
| 62 | * [http://www.sophie2.org/trac/ticket/2092 http://www.sophie2.org/trac/ticket/2092] - The first delete operation after typing text doesn't work. |
| 63 | * Problem: Incorrect comparison of HotPoses in HotInterval.isEmpty(). This leads to setting the same text when handling DELETE in TextFlowLogic. |
| 64 | * Solution: Fix HotInterval.isEmpty() to receive the HotPos Comparator of the text for which the positions should be compared. |
| 65 | * Testing - use TextNavigationTest, TextSelectionTest, HotLayoutTest and ImmHotTextTest |