diff options
Diffstat (limited to 'android/experimental/LOAndroid3/src/java/org/libreoffice/InvalidationHandler.java')
-rw-r--r-- | android/experimental/LOAndroid3/src/java/org/libreoffice/InvalidationHandler.java | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/android/experimental/LOAndroid3/src/java/org/libreoffice/InvalidationHandler.java b/android/experimental/LOAndroid3/src/java/org/libreoffice/InvalidationHandler.java index 7aeb573015f7..9f83006bc785 100644 --- a/android/experimental/LOAndroid3/src/java/org/libreoffice/InvalidationHandler.java +++ b/android/experimental/LOAndroid3/src/java/org/libreoffice/InvalidationHandler.java @@ -1,6 +1,7 @@ package org.libreoffice; import android.content.Intent; +import android.graphics.PointF; import android.graphics.RectF; import android.net.Uri; @@ -19,6 +20,7 @@ public class InvalidationHandler implements Document.MessageCallback { private static String LOGTAG = InvalidationHandler.class.getSimpleName(); private final DocumentOverlay mDocumentOverlay; private OverlayState mState; + private boolean mKeyEvent = false; public InvalidationHandler(LibreOfficeMainActivity mainActivity) { mDocumentOverlay = mainActivity.getDocumentOverlay(); @@ -150,6 +152,12 @@ public class InvalidationHandler implements Document.MessageCallback { mDocumentOverlay.positionCursor(cursorRectangle); mDocumentOverlay.positionHandle(SelectionHandle.HandleType.MIDDLE, cursorRectangle); + if (mKeyEvent) { + PointF point = new PointF(cursorRectangle.centerX(), cursorRectangle.centerY()); + LOKitShell.moveViewportTo(point, null); + mKeyEvent = false; + } + if (mState == OverlayState.TRANSITION || mState == OverlayState.CURSOR) { changeStateTo(OverlayState.CURSOR); } @@ -352,6 +360,10 @@ public class InvalidationHandler implements Document.MessageCallback { return mState; } + public void keyEvent() { + mKeyEvent = true; + } + public enum OverlayState { /** * State where the overlay is empty |