OSDN Git Service

Fix: Last char can be excluded from mouse selection.
authorKeisuke Kuroyanagi <ksk@google.com>
Thu, 8 Oct 2015 10:00:42 +0000 (19:00 +0900)
committerKeisuke Kuroyanagi <ksk@google.com>
Tue, 13 Oct 2015 11:02:26 +0000 (11:02 +0000)
When a mouse is used, isTouchSelecting for ACTION_UP always
returns false with current implementation because all
DragState spans have been removed in Touch#onTouchEvent.

Change-Id: Ie27a2bb860e9ddeb71dafff361c734a7c727102d

core/java/android/text/method/ArrowKeyMovementMethod.java

index de509b2..8470798 100644 (file)
@@ -238,6 +238,7 @@ public class ArrowKeyMovementMethod extends BaseMovementMethod implements Moveme
             initialScrollY = Touch.getInitialScrollY(widget, buffer);
         }
 
+        boolean wasTouchSelecting = isTouchSelecting(isMouse, buffer);
         boolean handled = Touch.onTouchEvent(widget, buffer, event);
 
         if (widget.didTouchFocusSelect() && !isMouse) {
@@ -301,7 +302,7 @@ public class ArrowKeyMovementMethod extends BaseMovementMethod implements Moveme
                 }
 
                 int offset = widget.getOffsetForPosition(event.getX(), event.getY());
-                if (isTouchSelecting(isMouse, buffer)) {
+                if (wasTouchSelecting) {
                     buffer.removeSpan(LAST_TAP_DOWN);
                     Selection.extendSelection(buffer, offset);
                 }