summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTomaž Vajngerl <tomaz.vajngerl@collabora.co.uk>2015-01-12 14:51:27 +0900
committerMiklos Vajna <vmiklos@collabora.co.uk>2015-01-12 11:06:45 +0100
commit9f77740d8b8112de1b157abd892307e057b4f265 (patch)
treee8a09e03089926517b4c82a107bf7cb8d4bddd8a
parent0ecf41b4b1ea995beab8ee79d608360f69a40040 (diff)
android: force screen to render - add access to LayerClient
Change-Id: Ia65eebd153251985fe736e8f278d46b22a06ec83
-rw-r--r--android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitThread.java9
-rw-r--r--android/experimental/LOAndroid3/src/java/org/mozilla/gecko/gfx/GeckoLayerClient.java8
-rw-r--r--android/experimental/LOAndroid3/src/java/org/mozilla/gecko/gfx/TileLayer.java1
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");