From 26976d9b53161f80faf822d482ac771b8621cf31 Mon Sep 17 00:00:00 2001 From: Adam Cohen Date: Tue, 22 Mar 2011 15:33:33 -0700 Subject: Fix resize frame bug: 4121297 Change-Id: I797c9af3ed0a0c99407c301e68d20485e108980c --- src/com/android/launcher2/PagedView.java | 4 ++++ src/com/android/launcher2/Workspace.java | 17 ++++++++++++++++- 2 files changed, 20 insertions(+), 1 deletion(-) (limited to 'src/com') diff --git a/src/com/android/launcher2/PagedView.java b/src/com/android/launcher2/PagedView.java index 1da08cdf8..9a0b79c2f 100644 --- a/src/com/android/launcher2/PagedView.java +++ b/src/com/android/launcher2/PagedView.java @@ -289,6 +289,10 @@ public abstract class PagedView extends ViewGroup { mIsPageMoving = false; } + protected boolean isPageMoving() { + return mIsPageMoving; + } + // a method that subclasses can override to add behavior protected void onPageBeginMoving() { } diff --git a/src/com/android/launcher2/Workspace.java b/src/com/android/launcher2/Workspace.java index 2e202f766..6b68c5ab7 100644 --- a/src/com/android/launcher2/Workspace.java +++ b/src/com/android/launcher2/Workspace.java @@ -213,6 +213,7 @@ public class Workspace extends SmoothPagedView WallpaperOffsetInterpolator mWallpaperOffset; boolean mUpdateWallpaperOffsetImmediately = false; boolean mSyncWallpaperOffsetWithScroll = true; + private Runnable mDelayedResizeRunnable; // info about the last drag private DragView mLastDragView; @@ -645,6 +646,11 @@ public class Workspace extends SmoothPagedView } mOverScrollMaxBackgroundAlpha = 0.0f; mOverScrollPageIndex = -1; + + if (mDelayedResizeRunnable != null) { + mDelayedResizeRunnable.run(); + mDelayedResizeRunnable = null; + } } @Override @@ -2366,13 +2372,22 @@ public class Workspace extends SmoothPagedView final LauncherAppWidgetHostView hostView = (LauncherAppWidgetHostView) cell; AppWidgetProviderInfo pinfo = hostView.getAppWidgetInfo(); if (pinfo.resizeMode != AppWidgetProviderInfo.RESIZE_NONE) { - post(new Runnable() { + final Runnable resizeRunnable = new Runnable() { public void run() { DragLayer dragLayer = (DragLayer) mLauncher.findViewById(R.id.drag_layer); dragLayer.addResizeFrame(info, hostView, cellLayout); } + }; + post(new Runnable() { + public void run() { + if (!isPageMoving()) { + resizeRunnable.run(); + } else { + mDelayedResizeRunnable = resizeRunnable; + } + } }); } } -- cgit v1.2.3