I wasted two more nights on that issue. It's completely dysfunctional now but I think I am getting an idea on what needs to be done.
Currently I've removed all of update and replaced it by two phase drawing with full recreation of the row cache. This can be fixed up to 'sort of works optically and does not look overly sluggish'. [And removed 1100 lines and almost all 'hackish' members of LyXText] But in addition to the purely cosmetic issues of 'noupdate 2', there are now lots of (unfixable) hard crashs. The reason is mainly the current cursor implementation. The stored row iterators get invalidated pretty fast -> boom. I do not feel like fixing this (the only way would probably go forward and re-do the cursor stuff as well) and I am not sure how to proceed. First of all I think there must be done something really soon now. It is fairly late in the game, but having e.g. 300 lines for backspace handling alone and tons of 'FIXMEs' which aren't obviously fixable does not bode well for the future. So 'just leave it as it is' does not look like an option. The main problem is that the remaining blob (update + LyXText + cursor + locking + backpointerage) is too turbid for salami tactics (keep slicing off small things and it will be gone at the end) and too big even for long shots. Comments, ideas? Andre'
