From b6082fa019937c13e19b023cc3feb7fca14a62ab Mon Sep 17 00:00:00 2001 From: Mike Cleron Date: Mon, 19 Oct 2009 17:03:36 -0700 Subject: [PATCH] Fix trackball selection on the desktop (not all apps, yet) AllApps view is always visible (in the View sense), which was causing it to take focus when it should not have. Changed Launcher to manually turn on/off the focusability of AllApps as it appears/disappears. --- src/com/android/launcher2/AllAppsView.java | 2 ++ src/com/android/launcher2/Launcher.java | 6 ++++++ 2 files changed, 8 insertions(+) diff --git a/src/com/android/launcher2/AllAppsView.java b/src/com/android/launcher2/AllAppsView.java index 7ee3026a9b..305f4041ca 100644 --- a/src/com/android/launcher2/AllAppsView.java +++ b/src/com/android/launcher2/AllAppsView.java @@ -374,6 +374,7 @@ public class AllAppsView extends RSSurfaceView return mRollo.mMessageProc.mZoom > 0.001f; } + /* @Override public boolean onTrackballEvent(MotionEvent ev) { @@ -386,6 +387,7 @@ public class AllAppsView extends RSSurfaceView return true; } + */ public void setApps(ArrayList list) { mAllAppsList = list; diff --git a/src/com/android/launcher2/Launcher.java b/src/com/android/launcher2/Launcher.java index bddc9ac3e3..851636681d 100644 --- a/src/com/android/launcher2/Launcher.java +++ b/src/com/android/launcher2/Launcher.java @@ -529,6 +529,8 @@ public final class Launcher extends Activity mAllAppsGrid.setLauncher(this); mAllAppsGrid.setDragController(dragController); mAllAppsGrid.setWillNotDraw(false); // We don't want a hole punched in our window. + // Manage focusability manually since this thing is always visible + mAllAppsGrid.setFocusable(false); mWorkspace = (Workspace) dragLayer.findViewById(R.id.workspace); final Workspace workspace = mWorkspace; @@ -1611,6 +1613,8 @@ public final class Launcher extends Activity mAllAppsGrid.zoom(1.0f); //mWorkspace.hide(); + mAllAppsGrid.setFocusable(true); + // TODO: fade these two too mDeleteZone.setVisibility(View.GONE); //mHandleView.setVisibility(View.GONE); @@ -1619,8 +1623,10 @@ public final class Launcher extends Activity void closeAllApps(boolean animated) { if (mAllAppsGrid.isVisible()) { mAllAppsGrid.zoom(0.0f); + mAllAppsGrid.setFocusable(false); mWorkspace.getChildAt(mWorkspace.getCurrentScreen()).requestFocus(); + // TODO: fade these two too /* mDeleteZone.setVisibility(View.VISIBLE);