Browse Source

fix:选中文字后拖动游标,偶现菜单不显示的问题

fansan 4 months ago
parent
commit
918992ff70
1 changed files with 16 additions and 4 deletions
  1. 16 4
      app/src/main/java/io/legado/app/ui/book/read/ReadBookController.kt

+ 16 - 4
app/src/main/java/io/legado/app/ui/book/read/ReadBookController.kt

@@ -503,10 +503,17 @@ class ReadBookController(
 
 
     override fun onTouch(v: View?, event: MotionEvent?): Boolean {
     override fun onTouch(v: View?, event: MotionEvent?): Boolean {
         val r = refs ?: return false
         val r = refs ?: return false
-        if (v == null || event == null || !r.readView.isTextSelected) {
+        if (v == null || event == null) {
             return false
             return false
         }
         }
-        when (event.action) {
+        val action = event.action
+        if (!r.readView.isTextSelected
+            && action != MotionEvent.ACTION_UP
+            && action != MotionEvent.ACTION_CANCEL
+        ) {
+            return false
+        }
+        when (action) {
             MotionEvent.ACTION_DOWN -> dismissTextActionMenu()
             MotionEvent.ACTION_DOWN -> dismissTextActionMenu()
             MotionEvent.ACTION_MOVE -> {
             MotionEvent.ACTION_MOVE -> {
                 when (v.id) {
                 when (v.id) {
@@ -536,9 +543,14 @@ class ReadBookController(
                 }
                 }
             }
             }
 
 
-            MotionEvent.ACTION_UP -> {
+            MotionEvent.ACTION_UP,
+            MotionEvent.ACTION_CANCEL -> {
                 r.readView.curPage.resetReverseCursor()
                 r.readView.curPage.resetReverseCursor()
-                showTextActionMenu()
+                if (r.readView.isTextSelected) {
+                    showTextActionMenu()
+                } else {
+                    dismissTextActionMenu()
+                }
             }
             }
         }
         }
         return true
         return true