diff options
author | Tomaž Vajngerl <tomaz.vajngerl@collabora.co.uk> | 2015-01-12 14:51:27 +0900 |
---|---|---|
committer | Miklos Vajna <vmiklos@collabora.co.uk> | 2015-01-12 11:06:45 +0100 |
commit | 9f77740d8b8112de1b157abd892307e057b4f265 (patch) | |
tree | e8a09e03089926517b4c82a107bf7cb8d4bddd8a | |
parent | 0ecf41b4b1ea995beab8ee79d608360f69a40040 (diff) |
android: force screen to render - add access to LayerClient
Change-Id: Ia65eebd153251985fe736e8f278d46b22a06ec83
3 files changed, 12 insertions, 6 deletions
diff --git a/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitThread.java b/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitThread.java index a37caa71bfd3..4063a8467763 100644 --- a/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitThread.java +++ b/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitThread.java @@ -34,20 +34,19 @@ public class LOKitThread extends Thread implements TileProvider.TileInvalidation composedTileLayer.addTile(tile); mLayerClient.endDrawing(mViewportMetrics); if (forceRedraw) { - Log.i(LOGTAG, "Redrawing tile " + tileId); - mLayerClient.forceRedraw(); + mLayerClient.forceRender(); } } } private void tileRerender(ComposedTileLayer composedTileLayer, SubTile tile) { - if (composedTileLayer.isStillValid(tile.id)) { + if (composedTileLayer.isStillValid(tile.id) && !tile.markedForRemoval) { + Log.i(LOGTAG, "Redrawing tile " + tile.id); mLayerClient.beginDrawing(); mTileProvider.rerenderTile(tile.getImage(), tile.id.x, tile.id.y, tile.id.size, tile.id.zoom); tile.invalidate(); - Log.i(LOGTAG, "Redrawing tile " + tile.id); - mLayerClient.forceRedraw(); mLayerClient.endDrawing(mViewportMetrics); + mLayerClient.forceRender(); } } 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 c1849d1511d3..1bb15bcb7fcc 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 @@ -397,6 +397,14 @@ public class GeckoLayerClient implements PanZoomTarget, LayerView.Listener { } } + public void forceRender() { + post(new Runnable() { + public void run() { + mView.requestRender(); + } + }); + } + /** Implementation of PanZoomTarget */ public boolean post(Runnable action) { return mView.post(action); diff --git a/android/experimental/LOAndroid3/src/java/org/mozilla/gecko/gfx/TileLayer.java b/android/experimental/LOAndroid3/src/java/org/mozilla/gecko/gfx/TileLayer.java index d35950220d74..3d0ff1fede66 100644 --- a/android/experimental/LOAndroid3/src/java/org/mozilla/gecko/gfx/TileLayer.java +++ b/android/experimental/LOAndroid3/src/java/org/mozilla/gecko/gfx/TileLayer.java @@ -73,7 +73,6 @@ public abstract class TileLayer extends Layer { * Invalidates the entire buffer so that it will be uploaded again. Only valid inside a * transaction. */ - public void invalidate() { if (!inTransaction()) throw new RuntimeException("invalidate() is only valid inside a transaction"); |