mirror of
https://github.com/apache/cordova-android.git
synced 2025-02-22 00:32:55 +08:00
CB-1691: Android menu button event doesn't fire when textbox has focus
This commit is contained in:
parent
011b512f28
commit
876f975aa2
@ -93,6 +93,8 @@ public class CordovaWebView extends WebView {
|
|||||||
private boolean bound;
|
private boolean bound;
|
||||||
|
|
||||||
private boolean handleButton = false;
|
private boolean handleButton = false;
|
||||||
|
|
||||||
|
private long lastMenuEventTime = 0;
|
||||||
|
|
||||||
NativeToJsMessageQueue jsMessageQueue;
|
NativeToJsMessageQueue jsMessageQueue;
|
||||||
ExposedJsApi exposedJsApi;
|
ExposedJsApi exposedJsApi;
|
||||||
@ -838,7 +840,10 @@ public class CordovaWebView extends WebView {
|
|||||||
}
|
}
|
||||||
// Legacy
|
// Legacy
|
||||||
else if (keyCode == KeyEvent.KEYCODE_MENU) {
|
else if (keyCode == KeyEvent.KEYCODE_MENU) {
|
||||||
this.loadUrl("javascript:cordova.fireDocumentEvent('menubutton');");
|
if (this.lastMenuEventTime < event.getEventTime()) {
|
||||||
|
this.loadUrl("javascript:cordova.fireDocumentEvent('menubutton');");
|
||||||
|
}
|
||||||
|
this.lastMenuEventTime = event.getEventTime();
|
||||||
return super.onKeyUp(keyCode, event);
|
return super.onKeyUp(keyCode, event);
|
||||||
}
|
}
|
||||||
// If search key
|
// If search key
|
||||||
|
@ -1006,10 +1006,10 @@ public class DroidGap extends Activity implements CordovaInterface {
|
|||||||
public boolean onKeyUp(int keyCode, KeyEvent event)
|
public boolean onKeyUp(int keyCode, KeyEvent event)
|
||||||
{
|
{
|
||||||
//Determine if the focus is on the current view or not
|
//Determine if the focus is on the current view or not
|
||||||
if (appView.getHitTestResult() != null &&
|
if (appView.getHitTestResult() != null &&
|
||||||
appView.getHitTestResult().getType() == WebView.HitTestResult.EDIT_TEXT_TYPE &&
|
appView.getHitTestResult().getType() == WebView.HitTestResult.EDIT_TEXT_TYPE &&
|
||||||
keyCode == KeyEvent.KEYCODE_BACK) {
|
(keyCode == KeyEvent.KEYCODE_BACK || keyCode == KeyEvent.KEYCODE_MENU)) {
|
||||||
return appView.onKeyUp(keyCode, event);
|
return appView.onKeyUp(keyCode, event);
|
||||||
} else if (appView.isCustomViewShowing() && keyCode == KeyEvent.KEYCODE_BACK) {
|
} else if (appView.isCustomViewShowing() && keyCode == KeyEvent.KEYCODE_BACK) {
|
||||||
return appView.onKeyUp(keyCode, event);
|
return appView.onKeyUp(keyCode, event);
|
||||||
} else {
|
} else {
|
||||||
|
Loading…
Reference in New Issue
Block a user