Martin Vermeer wrote:
Would it be an idea to first try LyX's own -dbg painting, to see how
repainting is being done? Especially in problem cases LyX may be simply
doing too much.
"lyx -dbg painting" produces no extra output,
other than telling me that it sets the debug level to 'painting'
"lyx -dbg workarea" prints this for each "W" I type when the
whole paragraph is visible in the main window:
WorkArea::redraw screen
InsetCache contains:
When some of the paragraph is outside of the window,
each "W" typed prints more debug output:
BufferView::updateMetrics
InsetCache contains:
WorkArea::redraw screen
InsetCache contains:
Combining "workarea" and "paining" gives more output:
Output per "W" with whole paragraph visible:
void lyx::BufferView::updateMetrics(bool)
y1: 0 y2: 69 pit: 0 singlepar: 1
WorkArea::redraw screen
*** START DRAWING ***
{01}
*** END DRAWING ***
InsetCache contains:
Causing a line wrap gives more output, as expected:
void lyx::BufferView::updateMetrics(bool)
y1: 0 y2: 272 pit1: 0 pit2: 0 npit: 1 singlepar: 1
BufferView::updateMetrics
InsetCache contains:
WorkArea::redraw screen
*** START DRAWING ***
{10}
{10}
{10}
{10}
{10}
{10}
{10}
{10}
*** END DRAWING ***
InsetCache contains:
Having some of the paragraph off-screen now gives a lot of extra output:
void lyx::BufferView::updateMetrics(bool)
y1: -276 y2: 286 pit: 0 singlepar: 1
void lyx::BufferView::updateMetrics(bool)
y1: -276 y2: 286 pit1: 0 pit2: 0 npit: 1 singlepar: 0
BufferView::updateMetrics
InsetCache contains:
WorkArea::redraw screen
*** START DRAWING ***
{11}
{11}
{11}
{11}
{11}
{11}
{11}
{11}
{11}
{11}
{11}
{11}
{11}
{11}
{11}
{11}
{11}
{11}
*** END DRAWING ***
InsetCache contains:
Now this is interesting. If the number of {}'s is an indication, the LyX
does
18 times as much work when typing in a partially visible paragraph. And yes,
with this window size, there were exactly 18 lines in the paragraph.
I hope this gives an indication of what's wrong.
Helge Hafting