mirror of
https://github.com/apache/cordova-android.git
synced 2025-02-22 00:32:55 +08:00
CB-2596: Fixing the menubutton for text fields
This commit is contained in:
parent
aa4820c3b7
commit
fb81f3e77e
@ -47,6 +47,7 @@ import android.view.KeyEvent;
|
|||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
import android.view.WindowManager;
|
import android.view.WindowManager;
|
||||||
|
import android.view.inputmethod.InputMethodManager;
|
||||||
import android.webkit.WebBackForwardList;
|
import android.webkit.WebBackForwardList;
|
||||||
import android.webkit.WebHistoryItem;
|
import android.webkit.WebHistoryItem;
|
||||||
import android.webkit.WebChromeClient;
|
import android.webkit.WebChromeClient;
|
||||||
@ -736,6 +737,19 @@ public class CordovaWebView extends WebView {
|
|||||||
else
|
else
|
||||||
return this.urls.size() > 1 || this.bound;
|
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);
|
return super.onKeyDown(keyCode, event);
|
||||||
}
|
}
|
||||||
|
@ -1062,7 +1062,8 @@ public class DroidGap extends Activity implements CordovaInterface {
|
|||||||
{
|
{
|
||||||
//Get whatever has focus!
|
//Get whatever has focus!
|
||||||
View childView = appView.getFocusedChild();
|
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);
|
return appView.onKeyUp(keyCode, event);
|
||||||
} else {
|
} else {
|
||||||
return super.onKeyUp(keyCode, event);
|
return super.onKeyUp(keyCode, event);
|
||||||
@ -1082,7 +1083,7 @@ public class DroidGap extends Activity implements CordovaInterface {
|
|||||||
//Get whatever has focus!
|
//Get whatever has focus!
|
||||||
View childView = appView.getFocusedChild();
|
View childView = appView.getFocusedChild();
|
||||||
//Determine if the focus is on the current view or not
|
//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);
|
return appView.onKeyDown(keyCode, event);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
Loading…
Reference in New Issue
Block a user