I've created a list of bugs/problems with the new table inset.
This should keep Juergen busy for a while (I suppose I should help with
items 19 and 20).

1. The most annoying problem is that the cursor can be placed outside
of a cell's text inset, and when the cursor is there, you cannot
enter text (I'll call these positions dummy cursor positions, and I'll call
the positions inside the text inset real positions).
I believe the purpose of the dummy positions is to allow selecting of cells
in the table, but they are annoying when you try to enter text in the table.
Here are two ways to solve this problem (the first one seems better)

- Completely remove the dummy cursor positions. When you press the mouse 
  button on some cell and move it to create a selection, LyX will select
  the appropriate region in the text inset. When the mouse exit the cell in
  which the selection started, the text inset in that cell "gives control"
  to the table inset and LyX begins doing a cell selection.
  This mechanism is used in the math inset, when doing keyboard selection 
  (but no mouse selection): goto the first position in math inset, and begin
  pressing S+right. After all the text in inset is selected, the selection 
  changes from math selection to "global" selection.

- When you enter a table with the mouse/keyboard, you always go to a real
  position. Moving the cursor with tab/up/down/left/right will always move
  the cursor to a real position.
  To get into a dummy position you need to press a special key (e.g escape).

2. When you have a table with many rows (whose height is bigger then the
height of the screen), and you scroll through the document with either
down or pagedown, the view will jump from the top of the table to
the bottom of the table, without showing the middle.

3. Memory consumption: With old table code, a 50x50 empty table takes ~140kb
of memory or ~57 bytes per cell. With the new code, such a table takes ~4936kb
or ~2022 bytes per cell.

4. The speed of editing of text in a table is slow. Especially when having
fixed width columns, or a table inside a table.

5. LyX crashed when doing line-delete-forward inside a table cell.

6. When copying table cells, it is not possible to paste them into another
table.

7. Suppose I have the table
1 2 3
4 5 6
7 8 9

and I mark the upper left 2x2 subtable.
After pressing C-x (cut), I get

- - -
- 5 6
7 8 9

8. It is not possible to paste a text from the X-clipboard into a cell's
text inset.

9. When marking several cells and pressing C-c (copy), the text is not
copied to the X-clipboard.

10. When exporting as ASCII, the tables are missing.

11. when having a fixed width column, the separation between paragraphs is
indent, where it should be skip.

12. It is possible to select a layout (e.g. enumerate) or change paragraph
parameters (e.g. pagebreaks) for a "paragraph" of a cell in 
a non-fixed column, which is senseless.
Furthermore, for a paragraph in a cell in a fixed width column, you can
select a pagebreak below/above the paragraph, which is senseless.

13. A lot of redundant data is written when saving a table in a LyX file.
For example a 1x1 table is stored as:

\begin_inset  Tabular
<LyXTabular version=1 rows=1 columns=1>
<Features rotate=0 islongtable=0 endhead=0 endfirsthead=0 endfoot=0 ...>

<Row topline=1 bottomline=1 newpage=0>
<Column alignment=8 valignment=0 leftline=1 rightline=1 width="" special="">
<Cell multicolumn=0 alignment=8 valignment=0 topline=0 bottomline=0 ... >
\begin_inset Text

\layout Standard

Some text
\end_inset 
</Cell>
</Column>
</Row>
</LyXTabular>

\end_inset 

All table/row values are the default ones (e.g., rotate = 0), so there is no 
need to store them.
The "\layout Standard" is redundant, as the column is has non-fixed width, so
layout information is senseless.
The "\begin_inset Text" is also redundant.

14. Check the attached file (bug.lyx)
- Pressing the mouse on one of the "f"s, and then pressing the mouse on the
  "x" will cause a crash.
- Putting the cursor on the "f"s and pressing backspace wil cause a display
  problem.

15. The red insettext's frame flickers when typing (while the text of the
table doesn't).

16. After insertion of table the cursor is sometimes misplaced 
(esp. if you insert a table inside a table).

17. If the file contain only a table, when you press left when the cursor
is to the left of the table, the cursor will go into the table.

18. Suppose I have a table with a fixed width column, and a cell in that 
column contains two paragraphs: A and B, both with standard layout.
I then change the layout of A to enumerate. Now, if I try to change
the layout of B to enumerate, nothing happens.

19. When inserting a table in a paragraph with a language different then the
document language, when you type text in some cell it will be in the document
language (or actually, "default" language :( ), and not in the language of the
paragraph.

20. RTL doesn't work properly.

bug.lyx.gz

Reply via email to