Le 23/10/2017 à 23:34, Patrick De Visschere a écrit :
With the patch in place, SingleParUpdate in bufferView::draw is never reached.
So finally you mean that an UpdateRequest is really fired for each
update event (which makes sense :), right?
It would be interesting to set a break on QWindow::requestUpdate and see
whether to is something we do that triggers this effect.
I did and it’s never triggered.
OK.
If I pass the coordinates of the paragraph, I notice that
“SingleParUpdate" actually means “SingleRowUpdate". Since only the
current paragraph is painted black now, except for the current row.
What happens is that the painting code (in TextMetrics::drawParagraph)
only paints the rows of the paragraph that have changed. This is why you
see that only the row cursor is repainted. If you do a change that
changes the cursor row and the next one (by inserting a character), you
should see several rows repainted.
I do not like much the idea of just restricting the update area, since
it seems very fragile. But we can return to it if needed. There are ways
to get all the coordinates that we need.
There is a point that I would like to clear though: is the screen turned
to black at each event (insertion of a character...), or only when
certain things happen, like the example of doing a PDF preview like
Stephan described at the beginning of this thread?
I’m still having problems with the basics. I thought there existed a document
describing the basics of textMetrics, paragraphMetrics … .
I found something on the wiki but not so much.
Did you take a look at development/PAINTING_ANALYSIS? I try to maintain
it while doing changes, but it is incomplete, and probably wrong in some
places.
JMarc