fix shortcut handling
Bugs: 3400078
3270434
3368141
3381411
Fixed controller to check for menu & ctrl keys for shortcuts
Changed focus handling in url bar
Keyboard focus transitions are not 100% working yet, but it's possible
to navigate to all the elements
Change-Id: I514d85a37dae2589e3ce1ecb18c7fc0bf4e715f3
diff --git a/src/com/android/browser/XLargeUi.java b/src/com/android/browser/XLargeUi.java
index 88df015..f361e57 100644
--- a/src/com/android/browser/XLargeUi.java
+++ b/src/com/android/browser/XLargeUi.java
@@ -260,18 +260,19 @@
return 0;
}
- void editUrl(boolean clearInput) {
+ @Override
+ public void editUrl(boolean clearInput) {
if (mUiController.isInCustomActionMode()) {
mUiController.endActionMode();
}
showTitleBar();
- mTitleBar.onEditUrl(clearInput);
+ mTitleBar.startEditingUrl(clearInput);
}
void showTitleBarAndEdit() {
mTitleBar.setShowProgressOnly(false);
showTitleBar();
- mTitleBar.onEditUrl(false);
+ mTitleBar.startEditingUrl(false);
}
void stopEditingUrl() {
@@ -387,21 +388,32 @@
@Override
public boolean dispatchKey(int code, KeyEvent event) {
WebView web = getActiveTab().getWebView();
- switch (code) {
- case KeyEvent.KEYCODE_TAB:
- case KeyEvent.KEYCODE_DPAD_UP:
- case KeyEvent.KEYCODE_DPAD_LEFT:
- if ((web != null) && web.hasFocus()) {
- editUrl(true);
- return true;
- }
- }
- boolean ctrl = event.hasModifiers(KeyEvent.META_CTRL_ON);
- if (!ctrl && event.isPrintingKey() && !mTitleBar.isEditingUrl()) {
- editUrl(true);
- return mContentView.dispatchKeyEvent(event);
+ if (event.getAction() == KeyEvent.ACTION_DOWN) {
+
+ switch (code) {
+ case KeyEvent.KEYCODE_TAB:
+ case KeyEvent.KEYCODE_DPAD_UP:
+ case KeyEvent.KEYCODE_DPAD_LEFT:
+ if ((web != null) && web.hasFocus() && !mTitleBar.hasFocus()) {
+ editUrl(false);
+ return true;
+ }
+ }
+ boolean ctrl = event.hasModifiers(KeyEvent.META_CTRL_ON);
+ if (!ctrl && isTypingKey(event) && !mTitleBar.isEditingUrl()) {
+ editUrl(true);
+ return mContentView.dispatchKeyEvent(event);
+ }
}
return false;
}
+ private boolean isTypingKey(KeyEvent evt) {
+ return evt.getUnicodeChar() > 0;
+ }
+
+ TabBar getTabBar() {
+ return mTabBar;
+ }
+
}