From 3b92134b2a71d965356708e48c118c5e60a4ba2f Mon Sep 17 00:00:00 2001 From: Hannes Janetzek Date: Sun, 6 Oct 2013 21:12:06 +0200 Subject: [PATCH] TextRenderer: handle 'clear' on update to remove all previous labels --- .../layers/tile/vector/labeling/TextRenderer.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/vtm/src/org/oscim/layers/tile/vector/labeling/TextRenderer.java b/vtm/src/org/oscim/layers/tile/vector/labeling/TextRenderer.java index 7f5ec8c7..dbdadcf8 100644 --- a/vtm/src/org/oscim/layers/tile/vector/labeling/TextRenderer.java +++ b/vtm/src/org/oscim/layers/tile/vector/labeling/TextRenderer.java @@ -613,6 +613,9 @@ class TextRenderer extends ElementRenderer { compile(); } + if (mRequestClear) + cleanup(); + //if (!mHolding) postLabelTask(); } @@ -620,6 +623,7 @@ class TextRenderer extends ElementRenderer { /* private */LabelTask mLabelTask; /* private */long mLastRun; /* private */boolean mRequestRun; + /* private */boolean mRequestClear; /* private */boolean mRelabel; class LabelTask implements Runnable { @@ -654,6 +658,7 @@ class TextRenderer extends ElementRenderer { mLabels = (Label) mPool.releaseAll(mLabels); mTileSet.releaseTiles(); mLabelTask = null; + mRequestClear = false; } private final Runnable mLabelUpdate = new Runnable() { @@ -718,6 +723,14 @@ class TextRenderer extends ElementRenderer { } public synchronized void clearLabels() { + if (mRequestRun) { + mRequestClear = true; + mRelabel = true; + } else { + cleanup(); + postLabelTask(); + } + // if (mLabelHandler != null) // mLabelHandler.removeCallbacks(mLabelUpdate); //