summaryrefslogtreecommitdiffstats
path: root/mathjaxandroid
diff options
context:
space:
mode:
authorThomas <tschneider.ac@gmail.com>2023-01-16 14:35:14 +0100
committerThomas <tschneider.ac@gmail.com>2023-01-16 14:35:14 +0100
commit25ad71080e261de9b418341c8e3c0f21fff6b405 (patch)
tree51ba32f5ef6286ee00a4ace2c9b5a50f95a9cd06 /mathjaxandroid
parent458463088350ee148e711841a52174edc06c7b9a (diff)
improvementsmaths
Diffstat (limited to 'mathjaxandroid')
-rw-r--r--mathjaxandroid/src/main/java/de/timfreiheit/mathjax/android/MathJaxView.java30
1 files changed, 30 insertions, 0 deletions
diff --git a/mathjaxandroid/src/main/java/de/timfreiheit/mathjax/android/MathJaxView.java b/mathjaxandroid/src/main/java/de/timfreiheit/mathjax/android/MathJaxView.java
index b474d6d8c..401f2d661 100644
--- a/mathjaxandroid/src/main/java/de/timfreiheit/mathjax/android/MathJaxView.java
+++ b/mathjaxandroid/src/main/java/de/timfreiheit/mathjax/android/MathJaxView.java
@@ -9,13 +9,17 @@ import android.os.Handler;
import android.text.TextUtils;
import android.util.AttributeSet;
import android.view.Gravity;
+import android.view.MotionEvent;
import android.view.View;
+import android.view.ViewConfiguration;
import android.view.ViewGroup;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.FrameLayout;
+import java.util.concurrent.atomic.AtomicReference;
+
/**
* Containerview for an WebView which renders LaTex using MathJax
@@ -148,6 +152,32 @@ public class MathJaxView extends FrameLayout {
mWebView.setVerticalScrollBarEnabled(verticalScrollbarsEnabled);
mWebView.setHorizontalScrollBarEnabled(horizontalScrollbarsEnabled);
mWebView.setBackgroundColor(0);
+ mWebView.getSettings().setLoadWithOverviewMode(true);
+ float touchSlop = ViewConfiguration.get(getContext()).getScaledTouchSlop();
+ final boolean[] scrollFlag = {true};
+ AtomicReference<Float> downX = new AtomicReference<>((float) 0);
+ AtomicReference<Float> downY = new AtomicReference<>((float) 0);
+ mWebView.setOnTouchListener((View v, MotionEvent event) -> {
+ if (!scrollFlag[0] && event.getY() < getHeight() / 2) {
+
+ switch (event.getAction()) {
+ case MotionEvent.ACTION_DOWN:
+ downX.set(event.getX());
+ downY.set(event.getY());
+ break;
+ case MotionEvent.ACTION_MOVE:
+ if (Math.abs(event.getY() - downY.get()) < touchSlop && Math.abs(event.getX() - downX.get()) > touchSlop) {
+ getParent().requestDisallowInterceptTouchEvent(true);
+ scrollFlag[0] = true;
+ }
+ break;
+ }
+ }
+ if (event.getAction() == MotionEvent.ACTION_UP)
+ scrollFlag[0] = false;
+
+ return false;
+ });
}
/**