You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by bo...@apache.org on 2013/03/04 23:26:59 UTC

android commit: CB-2596: Fixing the menubutton for text fields

Updated Branches:
  refs/heads/master aa4820c3b -> fb81f3e77


CB-2596: Fixing the menubutton for text fields


Project: http://git-wip-us.apache.org/repos/asf/cordova-android/repo
Commit: http://git-wip-us.apache.org/repos/asf/cordova-android/commit/fb81f3e7
Tree: http://git-wip-us.apache.org/repos/asf/cordova-android/tree/fb81f3e7
Diff: http://git-wip-us.apache.org/repos/asf/cordova-android/diff/fb81f3e7

Branch: refs/heads/master
Commit: fb81f3e77e4cc93dd26bf7fd324e9069964c5c3e
Parents: aa4820c
Author: Joe Bowser <bo...@apache.org>
Authored: Mon Mar 4 14:26:28 2013 -0800
Committer: Joe Bowser <bo...@apache.org>
Committed: Mon Mar 4 14:26:28 2013 -0800

----------------------------------------------------------------------
 .../src/org/apache/cordova/CordovaWebView.java     |   14 ++++++++++++++
 framework/src/org/apache/cordova/DroidGap.java     |    5 +++--
 2 files changed, 17 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cordova-android/blob/fb81f3e7/framework/src/org/apache/cordova/CordovaWebView.java
----------------------------------------------------------------------
diff --git a/framework/src/org/apache/cordova/CordovaWebView.java b/framework/src/org/apache/cordova/CordovaWebView.java
index 0489a8a..a1f423b 100755
--- a/framework/src/org/apache/cordova/CordovaWebView.java
+++ b/framework/src/org/apache/cordova/CordovaWebView.java
@@ -47,6 +47,7 @@ import android.view.KeyEvent;
 import android.view.View;
 import android.view.ViewGroup;
 import android.view.WindowManager;
+import android.view.inputmethod.InputMethodManager;
 import android.webkit.WebBackForwardList;
 import android.webkit.WebHistoryItem;
 import android.webkit.WebChromeClient;
@@ -736,6 +737,19 @@ public class CordovaWebView extends WebView {
             else
                 return this.urls.size() > 1 || this.bound;
         }
+        else if(keyCode == KeyEvent.KEYCODE_MENU)
+        {
+            //How did we get here?  Is there a childView?
+            View childView = this.getFocusedChild();
+            if(childView != null)
+            {
+                //Make sure we close the keyboard if it's present
+                InputMethodManager imm = (InputMethodManager) cordova.getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
+                imm.hideSoftInputFromWindow(childView.getWindowToken(), 0);
+                cordova.getActivity().openOptionsMenu();
+            }
+            return true;
+        }
         
         return super.onKeyDown(keyCode, event);
     }

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/fb81f3e7/framework/src/org/apache/cordova/DroidGap.java
----------------------------------------------------------------------
diff --git a/framework/src/org/apache/cordova/DroidGap.java b/framework/src/org/apache/cordova/DroidGap.java
index 6b890f6..d4296cb 100755
--- a/framework/src/org/apache/cordova/DroidGap.java
+++ b/framework/src/org/apache/cordova/DroidGap.java
@@ -1062,7 +1062,8 @@ public class DroidGap extends Activity implements CordovaInterface {
     {
         //Get whatever has focus!
         View childView = appView.getFocusedChild();
-        if ((appView.isCustomViewShowing() || childView != null ) && keyCode == KeyEvent.KEYCODE_BACK) {
+        if ((appView.isCustomViewShowing() || childView != null ) &&
+                (keyCode == KeyEvent.KEYCODE_BACK || keyCode == KeyEvent.KEYCODE_MENU)) {
             return appView.onKeyUp(keyCode, event);
         } else {
             return super.onKeyUp(keyCode, event);
@@ -1082,7 +1083,7 @@ public class DroidGap extends Activity implements CordovaInterface {
         //Get whatever has focus!
         View childView = appView.getFocusedChild();
         //Determine if the focus is on the current view or not
-        if (childView != null && keyCode == KeyEvent.KEYCODE_BACK) {
+        if (childView != null && (keyCode == KeyEvent.KEYCODE_BACK || keyCode == KeyEvent.KEYCODE_MENU)) {
                     return appView.onKeyDown(keyCode, event);
         }
         else