From 8e01c0fd6d4df9819c8eb54e68d23853fdeb28a8 Mon Sep 17 00:00:00 2001 From: Aleix Pol Date: Mon, 22 Jul 2019 23:39:13 +0200 Subject: [PATCH] Prefer QWidget::update to QWidget::repaint It blocks on rendering, which makes scrolling noticeably slow on systems with high resolution scrolling. Reviewed by Albert Astals --- ui/pageview.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/ui/pageview.cpp b/ui/pageview.cpp index deadf2a2b..b7de931a1 100644 --- a/ui/pageview.cpp +++ b/ui/pageview.cpp @@ -1614,7 +1614,7 @@ bool PageView::gestureEvent( QGestureEvent * event ) d->blockPixmapsRequest = true; updateZoom( ZoomRefreshCurrent ); d->blockPixmapsRequest = false; - viewport()->repaint(); + viewport()->update(); } // Count the number of 90-degree rotations we did since the start of the pinch gesture. @@ -2129,7 +2129,7 @@ void PageView::mouseMoveEvent( QMouseEvent * e ) d->blockPixmapsRequest = true; updateZoom( ZoomRefreshCurrent ); d->blockPixmapsRequest = false; - viewport()->repaint(); + viewport()->update(); } return; } @@ -3431,8 +3431,9 @@ void PageView::scrollContentsBy( int dx, int dy ) // thus leaving artifacts around QRegion rgn( r ); rgn -= rgn & r.translated( dx, dy ); + foreach ( const QRect &rect, rgn.rects() ) - viewport()->repaint( rect ); + viewport()->update( rect ); } //END widget events -- GitLab