Fix monkey bug

    Bug: 5166733
    added missing return statements and valid active
    tab check

Change-Id: Ida7ffa6faf77a95eaf19ef566176ad522be4efef
diff --git a/src/com/android/browser/Controller.java b/src/com/android/browser/Controller.java
index 3f126c0..24072c9 100644
--- a/src/com/android/browser/Controller.java
+++ b/src/com/android/browser/Controller.java
@@ -2684,23 +2684,32 @@
     }
 
     public boolean dispatchKeyEvent(KeyEvent event) {
-        return mBlockEvents;
+        return mBlockEvents || hasNoActiveTab();
     }
 
     public boolean dispatchKeyShortcutEvent(KeyEvent event) {
-        return mBlockEvents;
+        return mBlockEvents || hasNoActiveTab();
     }
 
     public boolean dispatchTouchEvent(MotionEvent ev) {
-        return mBlockEvents;
+        return mBlockEvents || hasNoActiveTab();
     }
 
     public boolean dispatchTrackballEvent(MotionEvent ev) {
-        return mBlockEvents;
+        return mBlockEvents || hasNoActiveTab();
     }
 
     public boolean dispatchGenericMotionEvent(MotionEvent ev) {
-        return mBlockEvents;
+        return mBlockEvents || hasNoActiveTab();
+    }
+
+    private boolean hasNoActiveTab() {
+        Tab tab = getCurrentTab();
+        if (tab == null) {
+            Log.w(LOGTAG, "Received event with no active tab. Tab count: "
+                    + mTabControl.getTabCount());
+        }
+        return tab == null;
     }
 
 }