There are three reasons why scrolling happens (first two cases of scrolling are actually due to
viewport transition that is triggered by annotation being traslated/created):
1. VisiblePageRect are NormalizedRect and should be represented by four values in [0, 1] interval.
Due to rounding errors caused by using QRect, they only reach the [0, 0.999] interval.
That means that right and bottom edge of the page are never visible so if annotation
is translated along the right/bottom edge viewport transition occurs (fixed in
PageView::slotRequestVisiblePixmaps)
2. For freehand line there are some constants (dX, dY) that make a line to be drawn outside
the page borders causing viewport transition. Removing these constants solves the problem (fixed
in SmoothPathEngine::event)
3. Browse mode is activated as soon as the cursor is moved outside the viewport.
Instead, we should forward the move event to the annotation which than can ignore the event (fixed
in PageView::mouseMoveEvent)
BUG: 436742
remotes/origin/esari-master-patch-95617
Nikola Nikolic3 years agocommitted byOliver Sander
qWarning().nospace()<<"viewportRect is "<<viewportRect<<", page item is "<<i->croppedGeometry()<<" intersect : "<<viewportRect.intersects(i->croppedGeometry());
qWarning().nospace()<<"viewportRect is "<<viewportRect<<", page item is "<<i->croppedGeometry()<<" intersect : "<<viewportRect.intersects(i->croppedGeometry());
#endif
#endif
// if the item doesn't intersect the viewport, skip it
// if the item doesn't intersect the viewport, skip it