From 43b241a496d446e7b613ad65fb016405009dd532 Mon Sep 17 00:00:00 2001
From: Stanley Yip <stanley_yip@brown.edu>
Date: Sun, 5 Apr 2020 13:31:24 -0700
Subject: Fixed docview bugs

---
 src/client/views/nodes/DocumentView.tsx | 31 +++++++++++++++++--------------
 1 file changed, 17 insertions(+), 14 deletions(-)

(limited to 'src/client/views/nodes/DocumentView.tsx')

diff --git a/src/client/views/nodes/DocumentView.tsx b/src/client/views/nodes/DocumentView.tsx
index aa3c1b3a2..7f2b9ed13 100644
--- a/src/client/views/nodes/DocumentView.tsx
+++ b/src/client/views/nodes/DocumentView.tsx
@@ -670,20 +670,23 @@ export class DocumentView extends DocComponent<DocumentViewProps, Document>(Docu
     }
 
     @action
-    onContextMenu = async (e: React.MouseEvent): Promise<void> => {
+    onContextMenu = async (e: React.MouseEvent | Touch): Promise<void> => {
         // the touch onContextMenu is button 0, the pointer onContextMenu is button 2
-        if (e.button === 0 && !e.ctrlKey) {
-            e.preventDefault();
-            return;
-        }
-        e.persist();
-        e?.stopPropagation();
-        if (Math.abs(this._downX - e.clientX) > 3 || Math.abs(this._downY - e.clientY) > 3 ||
-            e.isDefaultPrevented()) {
+        if (!(e instanceof Touch)) {
+            if (e.button === 0 && !e.ctrlKey) {
+                e.preventDefault();
+                return;
+            }
+            e.persist();
+            e?.stopPropagation();
+
+            if (Math.abs(this._downX - e.clientX) > 3 || Math.abs(this._downY - e.clientY) > 3 ||
+                e.isDefaultPrevented()) {
+                e.preventDefault();
+                return;
+            }
             e.preventDefault();
-            return;
         }
-        e.preventDefault();
 
         const cm = ContextMenu.Instance;
         const templateDoc = Cast(this.props.Document[StrCast(this.props.Document.layoutKey)], Doc, null);
@@ -764,7 +767,7 @@ export class DocumentView extends DocComponent<DocumentViewProps, Document>(Docu
 
         recommender_subitems.push({
             description: "Internal recommendations",
-            event: () => this.recommender(e),
+            event: () => this.recommender(),
             icon: "brain"
         });
 
@@ -825,7 +828,7 @@ export class DocumentView extends DocComponent<DocumentViewProps, Document>(Docu
                 icon: "external-link-alt"
             });
 
-            if (!this.topMost) {
+            if (!this.topMost && !(e instanceof Touch)) {
                 // DocumentViews should stop propagation of this event
                 e.stopPropagation();
             }
@@ -843,7 +846,7 @@ export class DocumentView extends DocComponent<DocumentViewProps, Document>(Docu
         });
     }
 
-    recommender = async (e: React.MouseEvent) => {
+    recommender = async () => {
         if (!ClientRecommender.Instance) new ClientRecommender({ title: "Client Recommender" });
         const documents: Doc[] = [];
         const allDocs = await SearchUtil.GetAllDocs();
-- 
cgit v1.2.3-70-g09d2

