[Libreoffice-commits] core.git: android/experimental

Tomaž Vajngerl tomaz.vajngerl at collabora.co.uk
Mon Dec 22 00:10:02 PST 2014


 android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitThread.java                 |   11 +++++++++-
 android/experimental/LOAndroid3/src/java/org/mozilla/gecko/gfx/GeckoLayerClient.java      |    6 +++++
 android/experimental/LOAndroid3/src/java/org/mozilla/gecko/gfx/JavaPanZoomController.java |    2 -
 3 files changed, 17 insertions(+), 2 deletions(-)

New commits:
commit 6f5eb643ead93c441566507f4dc4eac2d85e701b
Author: Tomaž Vajngerl <tomaz.vajngerl at collabora.co.uk>
Date:   Mon Dec 22 14:35:34 2014 +0900

    fdo#87098 invalidate zoom change by triggering animatedZoomTo
    
    Change-Id: Ie5734d8999a214a1df544579a7bfb32cc9f035eb

diff --git a/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitThread.java b/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitThread.java
index 8bf8239..2b83738 100644
--- a/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitThread.java
+++ b/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitThread.java
@@ -1,9 +1,14 @@
 package org.libreoffice;
 
+import android.graphics.PointF;
+import android.graphics.RectF;
+import android.util.Log;
+
 import org.mozilla.gecko.gfx.CairoImage;
 import org.mozilla.gecko.gfx.ComposedTileLayer;
 import org.mozilla.gecko.gfx.GeckoLayerClient;
 import org.mozilla.gecko.gfx.ImmutableViewportMetrics;
+import org.mozilla.gecko.gfx.JavaPanZoomController;
 import org.mozilla.gecko.gfx.SubTile;
 
 import java.util.concurrent.PriorityBlockingQueue;
@@ -40,7 +45,8 @@ public class LOKitThread extends Thread {
 
         mLayerClient.setPageRect(0, 0, mTileProvider.getPageWidth(), mTileProvider.getPageHeight());
         mViewportMetrics = mLayerClient.getViewportMetrics();
-        mLayerClient.setViewportMetrics(mViewportMetrics.setZoomFactor(mViewportMetrics.getWidth() / mViewportMetrics.getPageWidth()));
+        mLayerClient.setViewportMetrics(mViewportMetrics);
+        mLayerClient.zoomToPageWidth(mTileProvider.getPageWidth());
         mLayerClient.forceRedraw();
     }
 
@@ -53,6 +59,8 @@ public class LOKitThread extends Thread {
     private void changePart(int partIndex) {
         LOKitShell.showProgressSpinner();
         mTileProvider.changePart(partIndex);
+        mViewportMetrics = mLayerClient.getViewportMetrics();
+        mLayerClient.setViewportMetrics(mViewportMetrics.scaleTo(0.9f, new PointF()));
         refresh();
         LOKitShell.hideProgressSpinner();
     }
@@ -99,6 +107,7 @@ public class LOKitThread extends Thread {
                 closeDocument();
                 break;
             case LOEvent.SIZE_CHANGED:
+                Log.i(LOGTAG, "Size change event!");
                 redraw();
                 break;
             case LOEvent.CHANGE_PART:
diff --git a/android/experimental/LOAndroid3/src/java/org/mozilla/gecko/gfx/GeckoLayerClient.java b/android/experimental/LOAndroid3/src/java/org/mozilla/gecko/gfx/GeckoLayerClient.java
index c3535e5..934d19a 100644
--- a/android/experimental/LOAndroid3/src/java/org/mozilla/gecko/gfx/GeckoLayerClient.java
+++ b/android/experimental/LOAndroid3/src/java/org/mozilla/gecko/gfx/GeckoLayerClient.java
@@ -460,6 +460,12 @@ public class GeckoLayerClient implements PanZoomTarget, LayerView.Listener {
         return mContext;
     }
 
+    public void zoomToPageWidth(int pageWidth) {
+        if (mPanZoomController instanceof  JavaPanZoomController) {
+            ((JavaPanZoomController) mPanZoomController).animatedZoomTo(new RectF(0, 0, pageWidth, 0));
+        }
+    }
+
     private class AdjustRunnable implements Runnable {
         public void run() {
             mPendingViewportAdjust = false;
diff --git a/android/experimental/LOAndroid3/src/java/org/mozilla/gecko/gfx/JavaPanZoomController.java b/android/experimental/LOAndroid3/src/java/org/mozilla/gecko/gfx/JavaPanZoomController.java
index af47136..afab17d 100644
--- a/android/experimental/LOAndroid3/src/java/org/mozilla/gecko/gfx/JavaPanZoomController.java
+++ b/android/experimental/LOAndroid3/src/java/org/mozilla/gecko/gfx/JavaPanZoomController.java
@@ -915,7 +915,7 @@ public class JavaPanZoomController
      * While we usually use device pixels, @zoomToRect must be specified in CSS
      * pixels.
      */
-    private boolean animatedZoomTo(RectF zoomToRect) {
+    public boolean animatedZoomTo(RectF zoomToRect) {
         final float startZoom = getMetrics().zoomFactor;
 
         RectF viewport = getMetrics().getViewport();


More information about the Libreoffice-commits mailing list