From 696a67969d657d38eff33996633f08da0e21841f Mon Sep 17 00:00:00 2001 From: Adam Cohen Date: Thu, 9 Dec 2010 11:46:38 -0800 Subject: [PATCH] Fixing stack overflow (issue #3270492) Change-Id: I6a9c58d2c0843414fd844c8aa5bf0370da33108b --- src/com/android/launcher2/Workspace.java | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/com/android/launcher2/Workspace.java b/src/com/android/launcher2/Workspace.java index b58faed946..969fbd7cc8 100644 --- a/src/com/android/launcher2/Workspace.java +++ b/src/com/android/launcher2/Workspace.java @@ -727,8 +727,14 @@ public class Workspace extends SmoothPagedView // if shrinkToBottom() is called on initialization, it has to be deferred // until after the first call to onLayout so that it has the correct width if (mWaitingToShrink) { - shrink(mWaitingToShrinkState, false); - mWaitingToShrink = false; + // shrink can trigger a synchronous onLayout call, so we + // post this to avoid a stack overflow / tangled onLayout calls + post(new Runnable() { + public void run() { + shrink(mWaitingToShrinkState, false); + mWaitingToShrink = false; + } + }); } if (LauncherApplication.isInPlaceRotationEnabled()) { @@ -753,7 +759,6 @@ public class Workspace extends SmoothPagedView mCustomizeTrayBackground.draw(canvas); } } - super.onDraw(canvas); }