From 65caca4bab8df79194fe6963a61461cc0ba70b7c Mon Sep 17 00:00:00 2001 From: M66B Date: Thu, 6 Apr 2023 21:41:32 +0200 Subject: [PATCH] Fixed original view scrolling issues --- .../java/eu/faircode/email/WebViewEx.java | 26 ++++++++++--------- 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/WebViewEx.java b/app/src/main/java/eu/faircode/email/WebViewEx.java index 4e08c21437..6f55f2f071 100644 --- a/app/src/main/java/eu/faircode/email/WebViewEx.java +++ b/app/src/main/java/eu/faircode/email/WebViewEx.java @@ -316,18 +316,20 @@ public class WebViewEx extends WebView implements DownloadListener, View.OnLongC intercept = (yoff > 0 || dy >= 0) && (yoff < bottom || dy <= 0); } - int xrange = computeHorizontalScrollRange(); - int xextend = computeHorizontalScrollExtent(); - boolean canScrollHorizontal = (xrange > xextend); - if (canScrollHorizontal) { - int right = xrange - xextend; - int xoff = computeHorizontalScrollOffset(); - int ldx = xoff - lastXoff; - float dx = lastX - event.getX(); - intercept = (xoff > 0 || dx >= 0) && - (xoff < right || dx <= 0) && - (Math.signum(dx) == Math.signum(ldx)); - lastXoff = xoff; + if (!intercept) { + int xrange = computeHorizontalScrollRange(); + int xextend = computeHorizontalScrollExtent(); + boolean canScrollHorizontal = (xrange > xextend); + if (canScrollHorizontal) { + int right = xrange - xextend; + int xoff = computeHorizontalScrollOffset(); + int ldx = xoff - lastXoff; + float dx = lastX - event.getX(); + intercept = (xoff > 0 || dx >= 0) && + (xoff < right || dx <= 0) && + (Math.signum(dx) == Math.signum(ldx)); + lastXoff = xoff; + } } } getParent().requestDisallowInterceptTouchEvent(intercept || event.getPointerCount() > 1);