diff --git a/src/com/android/launcher2/HandleView.java b/src/com/android/launcher2/HandleView.java
index e6d940d..2bffe4b 100644
--- a/src/com/android/launcher2/HandleView.java
+++ b/src/com/android/launcher2/HandleView.java
@@ -60,32 +60,6 @@
     }
 
     @Override
-    public boolean onKeyDown(int keyCode, KeyEvent event) {
-        final boolean handled = super.onKeyDown(keyCode, event);
-
-        /* TODO
-        if (!handled && !mLauncher.isDrawerDown() && !isDirectionKey(keyCode)) {
-            return mLauncher.getApplicationsGrid().onKeyDown(keyCode, event);
-        }
-        */
-
-        return handled;
-    }
-
-    @Override
-    public boolean onKeyUp(int keyCode, KeyEvent event) {
-        final boolean handled = super.onKeyUp(keyCode, event);
-
-        /* TODO
-        if (!handled && !mLauncher.isDrawerDown() && !isDirectionKey(keyCode)) {
-            return mLauncher.getApplicationsGrid().onKeyUp(keyCode, event);
-        }
-        */
-
-        return handled;
-    }
-
-    @Override
     public boolean onTouchEvent(MotionEvent ev) {
         if (ev.getAction() == MotionEvent.ACTION_DOWN && mLauncher.isAllAppsVisible()) {
             return false;
