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 <[email protected]> Authored: Mon Mar 4 14:26:28 2013 -0800 Committer: Joe Bowser <[email protected]> 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
